KR102565776B1 - Method and Apparatus for Cloud Service - Google Patents

Method and Apparatus for Cloud Service Download PDF

Info

Publication number
KR102565776B1
KR102565776B1 KR1020217024857A KR20217024857A KR102565776B1 KR 102565776 B1 KR102565776 B1 KR 102565776B1 KR 1020217024857 A KR1020217024857 A KR 1020217024857A KR 20217024857 A KR20217024857 A KR 20217024857A KR 102565776 B1 KR102565776 B1 KR 102565776B1
Authority
KR
South Korea
Prior art keywords
events
variables
descriptor object
descriptor
variable
Prior art date
Application number
KR1020217024857A
Other languages
Korean (ko)
Other versions
KR20210110701A (en
Inventor
이라즈 소다가르
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20210110701A publication Critical patent/KR20210110701A/en
Application granted granted Critical
Publication of KR102565776B1 publication Critical patent/KR102565776B1/en

Links

Images

Classifications

    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 개시의 양태들은 클라우드 서비스를 위한 방법들 및 장치들을 제공한다. 예를 들어, 클라우드 서비스를 제공하기 위한 클라우드 내의 장치는 프로세싱 회로를 포함한다. 프로세싱 회로는 적어도 변수와 연관된 제1 특성들을 포함하는 요청을 수신한다. 일 예에서, 제1 특성들은 변수를 기술하기 위한 완전한 정보를 포함한다. 프로세싱 회로는 변수와 연관된 제1 특성들 및 변수의 업데이트된 값을 포함하는 메시지를 생성하고 메시지를 수신자에게 송신한다.Aspects of this disclosure provide methods and apparatus for cloud service. For example, a device in a cloud for providing a cloud service includes processing circuitry. A processing circuit receives a request that includes at least first characteristics associated with the variable. In one example, the first properties include complete information to describe the variable. The processing circuitry generates a message containing the first characteristics associated with the variable and the updated value of the variable and transmits the message to the recipient.

Figure R1020217024857
Figure R1020217024857

Description

클라우드 서비스를 위한 방법 및 장치Method and Apparatus for Cloud Service

참조에 의한 포함Inclusion by reference

본 출원은 2020년 9월 23일자로 출원된, 발명의 명칭이 "METHOD AND APPARATUS FOR CLOUD SERVICE"인 미국 특허 출원 제17/029,968호에 대한 우선권의 이익을 주장하며, 이 미국 특허 출원은 2019년 9월 27일에 출원된, 발명의 명칭이 "SELF-CONTAINED REPORTING FOR CLOUD SERVICES"인 미국 가출원 제62/907,322호, 2019년 9월 27일에 출원된, 발명의 명칭이 "SELF-CONTAINED MONITORING FOR CLOUD SERVICES"인 미국 가출원 제62/907,327호, 및 2019년 9월 27일에 출원된, 발명의 명칭이 "SELF-CONTAINED NOTIFICATION FOR CLOUD SERVICES"인 미국 가출원 제62/907,312호에 대한 우선권의 이익을 주장한다. 선행 출원의 전체 개시는 이로써 그 전체가 참고로 포함된다.This application claims the benefit of priority to U.S. Patent Application Serial No. 17/029,968, entitled "METHOD AND APPARATUS FOR CLOUD SERVICE," filed on September 23, 2020, which U.S. Patent Application filed on 2019 US Provisional Application No. 62/907,322, filed on September 27, entitled "SELF-CONTAINED REPORTING FOR CLOUD SERVICES", filed on September 27, 2019, entitled "SELF-CONTAINED MONITORING FOR U.S. Provisional Application No. 62/907,327, entitled "CLOUD SERVICES", and U.S. Provisional Application No. 62/907,312, filed on September 27, 2019, entitled "SELF-CONTAINED NOTIFICATION FOR CLOUD SERVICES." claim The entire disclosure of the prior application is hereby incorporated by reference in its entirety.

기술 분야technical field

본 개시는 일반적으로 클라우드 서비스에 관련된 실시예들을 기술한다.This disclosure generally describes embodiments relating to cloud services.

본 명세서에서 제공되는 배경기술 설명은 본 개시의 맥락을 일반적으로 제시하기 위한 것이다. 현재 기명된 발명자들의 연구가 이 배경기술 섹션에 기술되어 있는 한, 이 연구는 물론, 출원 당시에 선행 기술로서 달리 자격이 없을 수 있는 설명의 양태들은 명시적으로든 암시적으로든 본 개시에 대한 선행 기술로서 인정되지 않는다.The background description provided herein is intended to generally present the context of the present disclosure. To the extent that the work of the presently named inventors is described in this background section, this work, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are either expressly or implicitly considered prior art to the present disclosure. not accepted

다양한 미디어 애플리케이션 및 서비스는 상당한 프로세싱 능력을 필요로 한다. 일부 예에서, 그렇지 않았으면 클라이언트 디바이스에서 수행되었을 작업 부하가 원격 서버로 오프로드될 수 있는 경우 클라우드 프로세싱이 선호된다. 원격 서버가 훨씬 더 높은 계산 용량을 가지기 때문에, 복잡한 미디어 프로세싱 태스크가 원격 서버에 의해 수행될 수 있고, 이어서 최종 결과 또는 거의 최종 결과가 클라이언트 디바이스로 송신될 수 있다.Various media applications and services require significant processing power. In some instances, cloud processing is preferred when workloads that would otherwise be performed on a client device can be offloaded to a remote server. Because the remote server has a much higher computational capacity, complex media processing tasks can be performed by the remote server, and then the final or near final result can be transmitted to the client device.

본 개시의 양태는 클라우드 서비스를 위한 방법 및 장치를 제공한다. 예를 들어, 클라우드 서비스를 제공하기 위한 클라우드 내의 장치는 프로세싱 회로를 포함한다. 프로세싱 회로는 적어도 변수와 연관된 제1 특성들을 포함하는 요청을 수신한다. 일 예에서, 제1 특성들은 변수를 기술하기 위한 완전한 정보를 포함한다. 프로세싱 회로는 변수와 연관된 제1 특성들 및 변수의 업데이트된 값을 포함하는 메시지를 생성하고 메시지를 수신자에게 송신한다.Aspects of the present disclosure provide methods and apparatus for cloud services. For example, a device in a cloud for providing a cloud service includes processing circuitry. A processing circuit receives a request that includes at least first characteristics associated with the variable. In one example, the first properties include complete information to describe the variable. The processing circuitry generates a message containing the first characteristics associated with the variable and the updated value of the variable and transmits the message to the recipient.

일 예에서, 제1 특성들은 적어도 변수의 정의, 변수의 단위, 변수의 형식, 및 변수의 범용 식별자를 포함한다.In one example, the first characteristics include at least a definition of the variable, a unit of the variable, a type of the variable, and a universal identifier of the variable.

일부 예에서, 프로세싱 회로는 클라우드 서비스에 대한 작업 흐름을 확립하고 관리할 수 있다. 일부 다른 예에서, 프로세싱 회로는 클라우드 서비스에 대한 작업 흐름에서 하나 이상의 태스크를 수행할 수 있다.In some examples, processing circuitry may establish and manage workflows for cloud services. In some other examples, processing circuitry may perform one or more tasks in a workflow for a cloud service.

일부 실시예에서, 요청은 적어도 이벤트와 연관된 제2 특성들을 포함한다. 제2 특성들은 이벤트를 기술하기 위한 완전한 정보를 포함한다. 프로세싱 회로는 변수와 연관된 제1 특성들과 변수의 업데이트된 값, 및 이벤트의 발생을 표시하기 위한 이벤트와 연관된 제2 특성들을 포함하는 메시지를 생성할 수 있다. 변수가 기능 변수 또는 시스템 변수일 수 있고 이벤트가 기능 이벤트 또는 시스템 이벤트일 수 있음에 유의한다.In some embodiments, the request includes at least second characteristics associated with the event. The second properties contain complete information to describe the event. The processing circuitry can generate a message that includes first characteristics associated with the variable and an updated value of the variable, and second characteristics associated with the event to indicate the occurrence of the event. Note that a variable can be a function variable or a system variable and an event can be a function event or system event.

일부 실시예에서, 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체, 이벤트들과 연관된 제1 이벤트들 디스크립터 객체, 및 보고 간격을 갖는 제1 보고 디스크립터 객체를 포함한다. 프로세싱 회로는, 이전 메시지에 대해 보고 간격을 둔 시간에, 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 메시지를 생성한다.In some embodiments, the request includes at least a first variables descriptor object associated with variables, a first events descriptor object associated with events, and a first reporting descriptor object with a reporting interval. The processing circuitry has a second reporting descriptor object having a second events descriptor object associated with a subset of events and a second variables descriptor object having updated values for the variables at the time of the reporting interval for the previous message. Create a message containing

일부 실시예에서, 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 구독된 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 통지 디스크립터 객체를 포함한다. 프로세싱 회로는, 구독된 이벤트들 중 적어도 하나의 발생에 응답하여, 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 구독된 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 메시지를 생성한다.In some embodiments, the request includes at least a first notification descriptor object having a first variables descriptor object associated with the variables and a first events descriptor object associated with subscribed events. A processing circuit having, in response to the occurrence of at least one of the subscribed events, a second variables descriptor object having updated values for the variables and a second events descriptor object associated with the subset of subscribed events. 2 Creates a message containing a report descriptor object.

일부 실시예에서, 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 모니터링 디스크립터 객체를 포함한다. 프로세싱 회로는 모니터링 엔티티로부터 송신되는 요청을 수신하고, 요청에 응답하여, 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 메시지를 생성한다. 이어서, 프로세싱 회로는 메시지를 모니터링 엔티티로 송신한다.In some embodiments, the request includes at least a first monitoring descriptor object having a first variables descriptor object associated with variables and a first events descriptor object associated with events. The processing circuit receives a request transmitted from the monitoring entity and, in response to the request, a second variables descriptor object having updated values for the variables and a second events descriptor object associated with the subset of events. Creates a message containing a report descriptor object. The processing circuit then sends the message to the monitoring entity.

일부 실시예에서, 메시지가 요청을 식별해 주는 요청 디스크립터 객체를 포함한다는 점에 유의한다.Note that in some embodiments, the message includes a request descriptor object that identifies the request.

본 개시의 양태는 또한 클라우드 서비스를 위한 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 클라우드 서비스를 위한 방법을 수행하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 매체를 제공한다.Aspects of the present disclosure also provide a non-transitory computer readable medium storing instructions that, when executed by a computer for cloud services, cause the computer to perform a method for cloud services.

개시된 주제의 추가 특징, 본질 및 다양한 장점은 이하의 상세한 설명 및 첨부 도면으로부터 더 명백해질 것이다.
도 1은 본 개시의 실시예에 따른 예시적인 미디어 프로세싱 시스템을 도시한다.
도 2는 본 개시의 실시예에 따른 그래프의 예를 도시한다.
도 3은 본 개시의 일부 실시예에 따른 기능에서의 변수들의 목록을 도시한다.
도 4는 본 개시의 일부 실시예에 따른 변수에 대한 특성들의 테이블을 도시한다.
도 5는 본 개시의 일부 실시예에 따른 변수들 디스크립터 스키마의 예를 도시한다.
도 6은 본 개시의 일부 실시예에 따른 기능에서의 이벤트들의 목록을 도시한다.
도 7은 본 개시의 일부 실시예에 따른 이벤트에 대한 특성들의 테이블을 도시한다.
도 8은 본 개시의 일부 실시예에 따른 이벤트들 디스크립터 스키마의 예를 도시한다.
도 9는 보고 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시한다.
도 10은 본 개시의 일부 실시예에 따른 보고 디스크립터 스키마의 예를 도시한다.
도 11은 통지 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시한다.
도 12a 및 도 12b는 본 개시의 일부 실시예에 따른 통지 디스크립터 스키마의 예를 도시한다.
도 13은 모니터링 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시한다.
도 14는 본 개시의 일부 실시예에 따른 모니터링 디스크립터 스키마의 예를 도시한다.
도 15는 본 개시의 실시예에 따른 프로세스를 개략적으로 나타내는 플로차트를 도시한다.
도 16은 실시예에 따른 컴퓨터 시스템의 개략적 예시이다.
Additional features, nature and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings.
1 illustrates an exemplary media processing system in accordance with an embodiment of the present disclosure.
2 shows an example of a graph according to an embodiment of the present disclosure.
3 shows a list of variables in a function according to some embodiments of the present disclosure.
4 shows a table of properties for a variable according to some embodiments of the present disclosure.
5 shows an example of a variables descriptor schema according to some embodiments of the present disclosure.
6 shows a list of events in a function according to some embodiments of the present disclosure.
7 shows a table of properties for an event according to some embodiments of the present disclosure.
8 shows an example of an events descriptor schema according to some embodiments of the present disclosure.
9 shows a table of parameters and corresponding types for parameters in a reporting descriptor.
10 illustrates an example reporting descriptor schema according to some embodiments of the present disclosure.
11 shows a table of parameters and corresponding types for parameters in a notification descriptor.
12A and 12B show examples of notification descriptor schemas according to some embodiments of the present disclosure.
13 shows a table of parameters and corresponding types for parameters in a monitoring descriptor.
14 illustrates an example of a monitoring descriptor schema according to some embodiments of the present disclosure.
15 shows a flowchart outlining a process according to an embodiment of the present disclosure.
16 is a schematic illustration of a computer system according to an embodiment.

클라우드 컴퓨팅이란 정보 컴퓨팅 서비스(예를 들면, 클라우드 서비스)를 전달하기 위해 네트워크(예를 들면, 인터넷)에서 호스팅되는 원격 서버들의 네트워크를 사용하는 관행을 지칭한다. 클라우드 서비스들을 서비스 소비자들(예를 들면, 클라이언트들)에게 제공하는 데 이용되는 네트워크 아키텍처(예를 들면, 하드웨어 및 소프트웨어를 포함함)는 클라우드라고 지칭된다. 클라우드 컴퓨팅은, 데이터 프로세싱, 미디어 프로세싱, 서버, 스토리지, 네트워크, 애플리케이션, 온라인 서비스 등과 같은, 광범위한 서비스에 대한 액세스를 제공한다. 일부 예에서, 미디어 프로세싱은 계산 집약적으로 되며, 따라서 미디어 프로세싱 클라우드는 상당한 작업 부하를 원격 서버로 오프로드하는 데 선호된다.Cloud computing refers to the practice of using a network of remote servers hosted on a network (eg, the Internet) to deliver information computing services (eg, cloud services). The network architecture (eg, including hardware and software) used to provide cloud services to service consumers (eg, clients) is referred to as a cloud. Cloud computing provides access to a wide range of services, such as data processing, media processing, servers, storage, networks, applications, online services, and the like. In some instances, media processing becomes computationally intensive, so media processing clouds are preferred to offload significant workloads to remote servers.

일반적으로, 클라우드 컴퓨팅 시스템은 네트워크, 하나 이상의 서버 및 하나 이상의 클라이언트 디바이스를 포함한다. 네트워크는 서버와 클라이언트 디바이스 간의 통신을 용이하게 한다. 클라이언트 디바이스는, 예를 들어, 스마트 폰, 태블릿 컴퓨터, 랩톱, 개인용 컴퓨터, 웨어러블 디바이스, 헤드 마운티드 디스플레이(HMD) 등일 수 있다. 서버는 하나 이상의 클라이언트 디바이스에 컴퓨팅 서비스를 제공할 수 있는 임의의 적합한 컴퓨팅 또는 프로세싱 디바이스를 포함할 수 있다. 예를 들어, 각각의 서버는 하나 이상의 프로세싱 디바이스, 명령어들 및 데이터를 저장하는 하나 이상의 메모리, 및 네트워크를 통한 통신을 용이하게 하는 하나 이상의 네트워크 인터페이스를 포함할 수 있다. 일부 실시예에서, 서버는 프로세싱 태스크를 수행하기 위해 기능을 선택하고 작업 흐름 파이프라인을 구축할 수 있는 작업 흐름 관리자를 포함한다.Generally, a cloud computing system includes a network, one or more servers, and one or more client devices. A network facilitates communication between a server and a client device. The client device may be, for example, a smart phone, tablet computer, laptop, personal computer, wearable device, head mounted display (HMD), or the like. A server may include any suitable computing or processing device capable of providing computing services to one or more client devices. For example, each server may include one or more processing devices, one or more memories to store instructions and data, and one or more network interfaces to facilitate communication over a network. In some embodiments, the server includes a workflow manager that can select functions and build workflow pipelines to perform processing tasks.

본 개시의 일부 실시예에 따르면, 계산이 원격 서버로 오프로드될 때, 클라이언트 디바이스 또는 서비스를 제공하는 것을 책임지고 있는 서비스 제공자는 서비스의 프로세싱 상태에 관한 정보, 예컨대, 서비스의 실시간 정보 등을 필요로 할 수 있다. 일부 예에서, 클라우드 서비스에 관여된 엔티티에 상태 정보를 제공하기 위해 클라우드 컴퓨팅 시스템에서 액션이 취해질 수 있다. 예에서, 보고는 서비스의 수행 동안 이벤트 및 변수에 대한 정보를 목적지에 제공하기 위해 정기적으로 수행되는(예를 들면, 시간 간격에 기초하여 자주 수행되는) 액션이다. 다른 예에서, 통지는 이벤트가 발생할 때 정보를 목적지에 제공하는 액션이다. 다른 예에서, 모니터링은 엔티티가 정보를 요청하고 요청된 정보를 수신하는 액션이다. 설명의 용이성을 위해, 이하의 설명에서, 액션(예를 들면, 보고, 통지 및 모니터링)에 응답하여 생성되는 상태 정보는 상태 보고서라고 지칭되고; 보고 액션에 응답하여 생성되는 상태 정보는 정기 보고서라고 지칭되며; 통지 액션에 응답하여 생성되는 상태 정보는 통지 보고서라고 지칭되고; 모니터링 액션에 응답하여 생성되는 상태 정보는 모니터링 보고서라고 지칭된다.According to some embodiments of the present disclosure, when computation is offloaded to a remote server, the client device or service provider responsible for providing the service needs information about the processing status of the service, eg real-time information of the service, etc. can be done with In some examples, actions may be taken at the cloud computing system to provide status information to entities involved in the cloud service. In an example, reporting is an action that is performed regularly (eg, performed frequently based on time intervals) to provide a destination with information about events and variables during performance of a service. In another example, notification is an action that provides information to a destination when an event occurs. In another example, monitoring is an action by which an entity requests information and receives the requested information. For ease of explanation, in the description below, status information generated in response to an action (eg, reporting, notification, and monitoring) is referred to as a status report; Status information generated in response to a reporting action is referred to as a periodic report; Status information generated in response to a notification action is referred to as a notification report; Status information generated in response to a monitoring action is referred to as a monitoring report.

본 개시의 양태는 클라우드 컴퓨팅 시스템에서 보고, 모니터링 및 통지를 위한 프레임워크를 제공한다. 프레임워크는 보고, 모니터링 및 통지 액션들의 셋업 및 프로세싱을 단순화할 수 있다. 구체적으로, 본 개시의 일부 양태는 클라우드 컴퓨팅 서비스를 위한 자기 완비적(self-contained) 보고, 모니터링 및 통지 프레임워크를 제공한다. 자기 완비적 프레임워크는 수신자가 이해하도록 컨테이너에 모든 필요한 정보를 포함시키는 컨테이너(예를 들면, 메시지)를 수신자에게 제공할 수 있으며, 따라서 수신자는 수신된 정보를 이해하기 위해 컨테이너 외부의 정보를 상호 참조하는 것을 필요로 하지 않는다.Aspects of this disclosure provide a framework for reporting, monitoring and notification in cloud computing systems. The framework can simplify the setup and processing of reporting, monitoring and notification actions. Specifically, some aspects of the present disclosure provide a self-contained reporting, monitoring and notification framework for cloud computing services. A self-contained framework can provide a recipient with a container (e.g., a message) that includes all necessary information in the container for the recipient to understand, so that the recipient can interact with information outside the container to understand the received information. no need to refer

본 개시에서, 네트워크 기반 미디어 프로세싱(network-based media processing, NBMP)을 수행하는 미디어 프로세싱 시스템(일부 예에서는 미디어 프로세싱 클라우드라고도 지칭됨)이 보고, 모니터링 및 통지 프레임워크들을 예시하기 위해 예로서 사용되고, 보고, 모니터링 및 통지 프레임워크들이 다른 적합한 클라우드 컴퓨팅 시스템에서 사용될 수 있다는 점에 유의한다.In this disclosure, a media processing system (also referred to as a media processing cloud in some examples) that performs network-based media processing (NBMP) is used as an example to illustrate reporting, monitoring and notification frameworks; Note that reporting, monitoring and notification frameworks may be used in other suitable cloud computing systems.

미디어 프로세싱 시스템에서, NBMP 소스는 요청된 미디어 프로세싱을 기술하고 미디어 데이터의 성질과 형식에 관한 정보를 제공한다. 그에 따라, NBMP 작업 흐름 관리자는 미디어 프로세싱 작업 흐름을 확립하고 작업 흐름이 준비되었음을 NBMP 소스에 통보하며, 이어서 미디어 프로세싱이 시작될 수 있다. 예를 들어, 미디어 소스(들)는 이어서 프로세싱을 위해 미디어를 네트워크로 전송하기 시작할 수 있다.In a media processing system, the NBMP source describes the requested media processing and provides information about the nature and format of the media data. Accordingly, the NBMP work flow manager establishes a media processing work flow and notifies the NBMP source that the work flow is ready, then media processing can begin. For example, the media source(s) can then begin sending media to the network for processing.

일부 실시예에서, NBMP 작업 흐름은 미디어 프로세싱 태스크들 간의 입력/출력 관계에 기초하여 연결되는 미디어 프로세싱 태스크들을 포함한다. 미디어 프로세싱 태스크들 각각은, 비디오 디코딩, 비디오 스티칭, 비디오 인코딩 등과 같은, 미디어 프로세싱 동작을 수행한다. 일 예에서, 제1 미디어 프로세싱 태스크는 입력에 기초하여 미디어 프로세싱 동작을 수행하고 출력을 생성한다. 제1 미디어 프로세싱 태스크의 출력은 제1 미디어 프로세싱 태스크와 연결되는 제2 미디어 프로세싱 태스크에 대한 입력으로서 사용될 수 있다. 환언하면, NBMP 작업 흐름은 미디어 프로세싱 태스크들의 연결 그래프(connected graph)로 간주할 수 있다.In some embodiments, a NBMP workflow includes media processing tasks that are linked based on input/output relationships between media processing tasks. Each of the media processing tasks performs a media processing operation, such as video decoding, video stitching, video encoding, and the like. In one example, a first media processing task performs a media processing operation based on an input and generates an output. An output of the first media processing task may be used as an input to a second media processing task coupled with the first media processing task. In other words, a NBMP workflow can be viewed as a connected graph of media processing tasks.

작업 흐름 관리자는 각각의 태스크는 물론 작업 흐름 출력을 구성하고 모니터링하는 것에 의해 작업 흐름의 올바른 동작을 보장할 수 있다. 일부 예에서, 작업 흐름 관리자는 미디어 프로세싱 기능들을 선택하고 NBMP 소스로부터 수신되는 작업 흐름 설명에 기초하여 미디어 프로세싱 기능들을 태스크들로서 인스턴스화하도록 구성된다.A workflow manager can ensure correct operation of a workflow by configuring and monitoring each task as well as the workflow output. In some examples, the workflow manager is configured to select media processing functions and instantiate them as tasks based on the workflow description received from the NBMP source.

미디어 프로세싱 시스템에서는, 미디어 프로세싱 태스크를 실행할 미디어 프로세싱 엔티티들을 확립, 로딩, 인스턴스화 및 모니터링하기 위해 적합한 상호작용들이 수행될 수 있다. 일부 예에서, NBMP 소스와 작업 흐름 관리자 사이에; 작업 흐름 관리자와 태스크(들) 사이에 애플리케이션 프로그래밍 인터페이스들(API들)이 정의될 수 있고; API가 적절한 기능(들)을 발견하도록 정의된다. 일부 예에서, 미디어 프로세싱 시스템은 미디어 형식 및 프로토콜에 무관(agnostic)하도록 구성된다. 미디어 프로세싱 시스템은 미디어 소스, 작업 흐름 관리자 및 태스크 간에 교환되는 데이터에 대한 미디어, 메타데이터 및 보조 정보 형식들을 식별하고 시그널링할 수 있다.Appropriate interactions may be performed at the media processing system to establish, load, instantiate and monitor media processing entities to execute media processing tasks. In some examples, between a NBMP source and a workflow manager; Application programming interfaces (APIs) may be defined between the workflow manager and the task(s); An API is defined to discover the appropriate function(s). In some examples, the media processing system is configured to be media format and protocol agnostic. A media processing system may identify and signal media, metadata, and auxiliary information types for data exchanged between media sources, workflow managers, and tasks.

일부 예에서, 미디어 프로세싱을 위해 디지털 네트워크들을 통해 연결되는 엔티티들 사이의 데이터 형식들 및 애플리케이션 프로그래밍 인터페이스들(API들) 둘 모두를 포함하는 인터페이스들이 정의될 수 있다. 사용자들은 효율적이고 지능적인 프로세싱을 위해 원격으로 사용자 동작들에 액세스하여 이를 구성할 수 있다. 미디어 데이터에 적용될 작업 흐름들이 기술되고 관리될 수 있다. 미디어 데이터가 네트워크에 업로드될 수 있고, 미디어 프로세싱 태스크들이 인스턴스화되고 구성될 수 있다. 일부 실시예에서, 미디어 프로세싱 파이프라인들의 동적 생성은 물론 프로세싱된 미디어 데이터 및 메타데이터에 대한 실시간 또는 지연된 방식의 액세스가 가능하다. 미디어 프로세싱 파이프라인에서 미디어 소스, 작업 흐름 관리자 및 미디어 프로세싱 엔티티들 간에 사용되는 미디어 및 메타데이터 형식들이 또한 명시된다.In some examples, interfaces may be defined including both data formats and application programming interfaces (APIs) between entities that are connected through digital networks for media processing. Users can remotely access and configure user actions for efficient and intelligent processing. Workflows to be applied to media data can be described and managed. Media data can be uploaded to the network, and media processing tasks can be instantiated and configured. In some embodiments, dynamic creation of media processing pipelines is possible as well as real-time or deferred access to processed media data and metadata. Media and metadata formats used between the media source, workflow manager and media processing entities in the media processing pipeline are also specified.

일 예에서, 클라이언트들(예를 들면, 디지털 미디어의 제작자들, 서비스 제공자들 및 소비자들)은 네트워크에서 미디어 프로세싱 엔티티들에 의해 수행될 미디어 프로세싱 동작들을 기술할 수 있다. 작업 흐름은 인터페이스들(예를 들면, NBMP API들)을 통해 액세스 가능한 미디어 프로세싱 기능들의 세트를 구성하는 것에 의해 기술될 수 있다. 미디어 프로세싱 엔티티(MPE)는 미디어에 적용되는 프로세싱 태스크들 및 미디어 소스(들) 또는 다른 태스크로부터 수신되는 관련 메타데이터를 실행할 수 있다. MPE는 프로세싱 태스크를 구성, 관리 및 모니터링하기 위한 능력을 제공할 수 있다. 미디어 프로세싱 태스크는 미디어 및 메타데이터 입력(들)에 적용되어, 미디어 싱크 또는 다른 미디어 프로세싱 태스크에 의해 소비될 데이터 및 관련 메타데이터 출력(들)을 생성하는 프로세스일 수 있다.In one example, clients (eg producers, service providers and consumers of digital media) may describe media processing operations to be performed by media processing entities in the network. A workflow may be described by making a set of media processing functions accessible through interfaces (eg, NBMP APIs). A media processing entity (MPE) may execute processing tasks applied to media and associated metadata received from media source(s) or other tasks. MPEs can provide the ability to configure, manage and monitor processing tasks. A media processing task can be a process that is applied to media and metadata input(s) to generate data and associated metadata output(s) to be consumed by a media sink or other media processing task.

미디어 프로세싱 시스템은 스트리밍, 파일 전달, 푸시 기반 점진적 다운로드, 하이브리드 전달, 다중 경로 및 이종 네트워크 환경과 같은 다양한 전달 방법들을 지원할 수 있다.A media processing system may support a variety of delivery methods such as streaming, file delivery, push-based incremental download, hybrid delivery, multi-path and heterogeneous network environments.

도 1은 본 개시의 실시예에 따른 예시적인 미디어 프로세싱 시스템(예를 들면, NBMP 시스템, NBMP 참조 아키텍처, NBMP 아키텍처)(100)을 도시한다. 미디어 프로세싱 시스템(100)은, NBMP 소스(101), 작업 흐름 관리자(예를 들면, NBMP 작업 흐름 관리자)(103), 기능 리포지토리(105), 미디어 소스(111), 미디어 프로세싱 엔티티(MPE)(113), 미디어 싱크(115), 제3자 엔티티 등과 같은, 복수의 엔티티를 포함할 수 있다. 미디어 프로세싱 시스템(100)은 추가적인 미디어 소스(들), 미디어 싱크(들), 및/또는 미디어 프로세싱 엔티티를 포함할 수 있다. 미디어 프로세싱 시스템(100)은 네트워크 내의 하나 이상의 프로세싱 엔티티에 걸쳐 미디어 데이터를 프로세싱할 수 있다. 다양한 미디어 및 미디어에 대한 제어 정보(또는 제어 데이터)와 같은 정보가 미디어 프로세싱 시스템(100) 내의 복수의 엔티티들 간에 통신될 수 있다.1 illustrates an exemplary media processing system (eg, NBMP system, NBMP reference architecture, NBMP architecture) 100 according to an embodiment of the present disclosure. The media processing system 100 includes a NBMP source 101, a workflow manager (eg, NBMP workflow manager) 103, a function repository 105, a media source 111, a media processing entity (MPE) ( 113), media sink 115, third party entities, and the like. Media processing system 100 may include additional media source(s), media sink(s), and/or media processing entities. Media processing system 100 may process media data across one or more processing entities within a network. Information such as various media and control information (or control data) for the media may be communicated between multiple entities within the media processing system 100 .

논의를 위한 맥락을 제공하기 위해, 미디어 프로세싱 시스템(100)은 아래에서 NBMP 시스템(100)으로서 기술된다. 이 설명들은 임의의 미디어 프로세싱 시스템에 적합하게 적응될 수 있다.To provide context for the discussion, media processing system 100 is described below as NBMP system 100 . These descriptions can be adapted to suit any media processing system.

NBMP 소스(101)는 네트워크에서의 미디어 프로세싱을 기술하거나 다른 방식으로 나타낼 수 있다. 기능 리포지토리(105)는 다양한 NBMP 기능의 NBMP 기능 설명들을 포함할 수 있다. NBMP 소스(101) 및 작업 흐름 관리자(103)는 기능 리포지토리(105)로부터 NBMP 기능 설명들 또는 기능들을 검색할 수 있다. NBMP 기능은 독립형 및 자기 완비적 미디어 프로세싱 동작의 구현 및/또는 동작의 대응하는 설명을 지칭할 수 있다.A NBMP source 101 may describe or otherwise represent media processing in a network. Function repository 105 may contain NBMP function descriptions of various NBMP functions. The NBMP source 101 and workflow manager 103 may retrieve NBMP function descriptions or functions from the function repository 105 . A NBMP function may refer to a corresponding description of the implementation and/or operation of standalone and self-contained media processing operations.

프로세싱 태스크 또는 태스크는 MPE(113)에 의해 실행되는 NBMP 기능의 런타임 인스턴스를 지칭할 수 있다. NBMP 작업 흐름 또는 작업 흐름은 요청된 미디어 프로세싱을 달성하는 하나 이상의 연결된 태스크(들)의 그래프(예를 들면, 유향 비순환 그래프(directed acyclic graph, DAG))에 의해 표현될 수 있다. 작업 흐름 관리자(103)는, 예를 들어, 작업 흐름 설명 문서(workflow description document, WDD)에 기초하여, 작업 흐름을 생성, 제어, 관리 및 모니터링하기 위한 태스크(들)를 프로비저닝하고 태스크(들)를 연결시킬 수 있다.A processing task or task may refer to a runtime instance of NBMP functionality executed by MPE 113 . A NBMP workflow or workflow may be represented by a graph (eg, a directed acyclic graph (DAG)) of one or more connected task(s) that accomplish the requested media processing. Workflow manager 103 provisions task(s) and tasks for creating, controlling, managing, and monitoring workflows, based on, for example, a workflow description document (WDD). can be connected.

미디어 소스(111)는 작업 흐름에 의해 프로세싱될 미디어 콘텐츠(예를 들면, 미디어 데이터, 보충 정보)를 제공할 수 있다. 보충 정보는 미디어 데이터에 관련된 메타데이터 또는 보조 정보를 포함할 수 있다. 미디어 소스(111)는 작업 흐름에 입력을 제공할 수 있다. 미디어 싱크(115)는 작업 흐름의 출력을 소비할 수 있다. MPE(113)는 미디어 콘텐츠를 프로세싱하기 위해 하나 이상의 미디어 프로세싱 태스크(들)를 실행할 수 있다.A media source 111 may provide media content (eg, media data, supplemental information) to be processed by the workflow. Supplemental information may include metadata or auxiliary information related to media data. A media source 111 may provide input to the workflow. Media sink 115 may consume the output of the workflow. MPE 113 may execute one or more media processing task(s) to process media content.

NBMP 시스템(100) 내의 상이한 엔티티들(예를 들면, NBMP 소스(101), 작업 흐름 관리자(103) 및 MPE(113))은 API들을 사용하여 미디어 서비스 요청을 호출하고 그에 응답할 수 있다. API들은 NBMP 작업 흐름 API 또는 작업 흐름 API, 기능 발견 API 및 태스크 API를 포함할 수 있다. 작업 흐름 API는 NBMP 소스(101)와 작업 흐름 관리자(103) 사이의 인터페이스를 제공할 수 있다. 태스크 API는 작업 흐름 관리자(103)와 미디어 프로세싱 태스크 사이의 인터페이스를 제공할 수 있다. 기능 발견 API는 작업 흐름 관리자(103)/NBMP 소스(101)와 기능 리포지토리(105) 사이의 인터페이스를 제공할 수 있다.Different entities within the NBMP system 100 (eg, NBMP source 101, workflow manager 103, and MPE 113) may invoke and respond to media service requests using APIs. APIs may include NBMP Workflow API or Workflow API, Function Discovery API and Task API. A workflow API may provide an interface between the NBMP source 101 and the workflow manager 103 . A task API may provide an interface between workflow manager 103 and media processing tasks. A function discovery API may provide an interface between the Workflow Manager 103 / NBMP Source 101 and the Function Repository 105 .

위에서 기술된 NBMP 인터페이스들은 네트워크에서의 미디어 프로세싱 작업 흐름들을 생성하고 제어하는 데 사용될 수 있다. NBMP 시스템(100)은 제어 평면과 미디어 평면(또는 미디어 데이터 평면)으로 분할될 수 있다. 제어 평면은 작업 흐름 API, 기능 발견 API 및 태스크 API를 포함할 수 있다.The NBMP interfaces described above may be used to create and control media processing workflows in a network. The NBMP system 100 can be divided into a control plane and a media plane (or media data plane). The control plane can include workflow APIs, function discovery APIs, and task APIs.

작업 흐름 API는 미디어 프로세싱 작업 흐름을 생성하고 제어하기 위해 NBMP 소스(101)에 의해 사용될 수 있다. NBMP 소스(101)는 네트워크에서의 미디어 프로세싱을 구성하고 제어하기 위해 작업 흐름 관리자(103)와 통신하기 위해 작업 흐름 API를 사용할 수 있다. NBMP 소스(101)가 작업 흐름 API의 동작에 작업 흐름 리소스(WR)를 포함시키는 것에 의해 요청을 작업 흐름 관리자(103)로 송신할 때, 작업 흐름 관리자(103)는 WR, 포함된 WDD 및 대응하는 디스크립터를 파싱하고, 요청된 동작에 따라 적절한 액션들을 취할수 있다. 이어서, 작업 흐름 관리자(103)는 응답으로 요청을 확인응답할 수 있다. 작업 흐름 API 동작들은 작업 흐름을 생성하는 것(예를 들면, CreateWorkflow), 작업 흐름을 업데이트하는 것(예를 들면, UpdateWorkflow), 작업 흐름을 삭제하는 것(예를 들면, DeleteWorkflow), 작업 흐름을 검색하는 것(예를 들면, RetrieveWorkflow) 등을 포함할 수 있다.Workflow APIs may be used by the NBMP source 101 to create and control media processing workflows. The NBMP source 101 may use a workflow API to communicate with the workflow manager 103 to configure and control media processing in the network. When the NBMP source 101 sends a request to the workflow manager 103 by including the workflow resource (WR) in the operation of the workflow API, the workflow manager 103 sends the WR, the included WDD and the corresponding parse the descriptor and take appropriate actions according to the requested action. Workflow manager 103 may then acknowledge the request in response. The workflow API operations are to create a workflow (eg CreateWorkflow), update a workflow (eg UpdateWorkflow), delete a workflow (eg DeleteWorkflow), Retrieve (eg, RetrieveWorkflow), and the like.

기능 발견 API는 작업 흐름 관리자(103) 및/또는 NBMP 소스(101)가 미디어 프로세싱 작업 흐름의 일부로서 로딩될 수 있는 미디어 프로세싱 기능들을 발견하기 위한 수단을 제공할 수 있다.The function discovery API may provide a means for the workflow manager 103 and/or the NBMP source 101 to discover media processing functions that may be loaded as part of a media processing workflow.

태스크 API는 런타임에서 태스크(들)(예를 들면, MPE(113)에 의해 실행되는 태스크 1 및 태스크 2)를 구성하고 모니터링하기 위해 작업 흐름 관리자(103)에 의해 사용될 수 있다. 태스크 API는, 예를 들어, 태스크에 대한 리소스들이 MPE(113)에 할당된 후에, 작업 흐름 관리자(103)에 의한 미디어 프로세싱 태스크들의 구성을 위한 인터페이스(들)를 정의할 수 있다. 태스크 API 동작들은 태스크를 생성하는 것(예를 들면, CreateTask), 태스크를 업데이트하는 것(예를 들면, UpdateTask), 태스크를 가져오는 것(예를 들면, GetTask), 태스크를 삭제하는 것(예를 들면, DeleteTask) 등을 포함할 수 있다.The task API may be used by workflow manager 103 to configure and monitor task(s) (eg, task 1 and task 2 executed by MPE 113) at runtime. A task API may define interface(s) for configuration of media processing tasks by workflow manager 103, eg, after resources for the task are allocated to MPE 113. The Task API operations are to create a task (e.g. CreateTask), update a task (e.g. UpdateTask), get a task (e.g. GetTask), and delete a task (e.g. For example, DeleteTask) and the like.

미디어 평면에서, NBMP 소스(111)와 태스크(들) 사이는 물론 태스크들 사이의 미디어 형식, 메타데이터 및 보충 정보 형식들이 정의될 수 있다.At the media plane, media types, metadata and supplemental information types between tasks as well as between NBMP sources 111 and task(s) may be defined.

작업 흐름 설명(WD)은 NBMP 소스(101)로부터 작업 흐름 관리자(103)로 전달될 수 있다. WD는 작업 흐름에 대한 입력 데이터 및 출력 데이터, 기능들 및 다른 요구사항들과 같은 정보를 기술할 수 있다.A Workflow Description (WD) may be passed from the NBMP Source 101 to the Workflow Manager 103 . A WD can describe information such as input data and output data, functions, and other requirements for a workflow.

작업 흐름 관리자(103)는 NBMP 소스(101)로부터 WDD를 수신할 수 있고 요청된 미디어 프로세싱을 위한 작업 흐름을 구축할 수 있다. 작업 흐름 절차에서, 미디어 프로세싱 기능들이, 예를 들어, 기능 리포지토리(105)로부터 선택될 수 있으며, 이어서 대응하는 미디어 프로세싱 태스크들이 구성되고 하나 이상의 MPE의 세트(예를 들면, MPE(113)를 포함함)에 분배될 수 있다.The workflow manager 103 may receive the WDD from the NBMP source 101 and build a workflow for processing the requested media. In a workflow procedure, media processing functions may be selected, for example, from function repository 105, and then corresponding media processing tasks are constructed and a set of one or more MPEs (including MPEs 113, for example). ) can be distributed.

기능 리포지토리(105)에 의해 제공되는 기능들의 세트는 NBMP 소스(101) 및 작업 흐름 관리자(103)에 의해 판독될 수 있다. 일 실시예에서, NBMP 소스(101)는 기능 리포지토리(105)에 있는 기능들의 세트를 사용하여 작업 흐름을 생성하는 것을 요청한다. 그에 따라, NBMP 소스(101)는 작업 흐름에 대한 기능들을 선택하도록 구성된다. NBMP 소스(101)는 아래에서 기술되는 바와 같이 작업 흐름의 생성을 요청할 수 있다. NBMP 소스(101)는 작업 흐름을 생성하는 데 이용되는 미디어 프로세싱 태스크들의 설명을 사용할 수 있으며, 미디어 프로세싱 태스크들의 입력들과 출력들의 연결을 정의하기 위한 연결 맵을 명시할 수 있다. 작업 흐름 관리자(103)가 NBMP 소스(101)로부터 상기 정보를 수신할 때, 작업 흐름 관리자(103)는 각자의 기능 이름들에 기초하여 미디어 프로세싱 태스크들을 인스턴스화할 수 있고 연결 맵에 따라 미디어 프로세싱 태스크들을 연결시킬 수 있다.The set of functions provided by function repository 105 can be read by NBMP source 101 and workflow manager 103 . In one embodiment, the NBMP source 101 requests the creation of a workflow using a set of functions in the function repository 105 . Accordingly, the NBMP source 101 is configured to select functions for a work flow. The NBMP source 101 may request creation of a work flow as described below. The NBMP source 101 may use the description of media processing tasks used to create the workflow and may specify a connectivity map to define the connectivity of the inputs and outputs of the media processing tasks. When workflow manager 103 receives the above information from NBMP source 101, workflow manager 103 can instantiate media processing tasks based on respective function names and media processing tasks according to the connection map. can connect them.

대안적으로, NBMP 소스(101)는 작업 흐름 관리자(103)가 작업 흐름을 구성하는 데 이용할 수 있는 키워드들의 세트를 사용하여 작업 흐름의 생성을 요청할 수 있다. 그에 따라, NBMP 소스(101)는 작업 흐름에 삽입될 기능들의 세트를 인식하지 못할 수 있다. NBMP 소스(101)는 아래에서 기술되는 바와 같이 작업 흐름의 생성을 요청할 수 있다. NBMP 소스(101)는 작업 흐름 관리자(103)가 적절한 기능들을 찾는 데 이용할 수 있는 키워드들의 세트를 사용할 수 있으며 적합한 작업 흐름 설명을 사용하여 작업 흐름의 요구사항들을 명시할 수 있다.Alternatively, the NBMP source 101 may request creation of a workflow using a set of keywords that the workflow manager 103 may use to configure the workflow. As such, the NBMP source 101 may not be aware of the set of functions to be inserted into the workflow. The NBMP source 101 may request creation of a work flow as described below. The NBMP source 101 may use a set of keywords that the workflow manager 103 may use to find suitable functions and may use an appropriate workflow description to specify the requirements of the workflow.

작업 흐름 관리자(103)가 NBMP 소스(101)로부터 상기 정보(예를 들면, 키워드들의 세트)를 수신할 때, 작업 흐름 관리자(103)는, 예를 들어, 프로세싱 디스크립터에 명시된 키워드들을 사용하여 적절한 기능들을 탐색하는 것에 의해 작업 흐름을 생성할 수 있다. 이어서 작업 흐름 관리자(103)는 미디어 프로세싱 태스크들을 프로비저닝하고 미디어 프로세싱 태스크들을 연결시켜 최종 작업 흐름을 생성하기 위해 작업 흐름 설명 내의 다른 디스크립터들을 사용할 수 있다.When the workflow manager 103 receives the information (eg, a set of keywords) from the NBMP source 101, the workflow manager 103 may use the keywords specified in the processing descriptor, for example, to generate the appropriate information. You can create a workflow by exploring features. Workflow manager 103 can then use other descriptors in the workflow description to provision media processing tasks and link media processing tasks to create a final workflow.

작업 흐름 관리자(103)의 프로세싱 모델은 아래와 같이 기술될 수 있다.The processing model of the workflow manager 103 can be described as follows.

작업 흐름 관리자(103)는 아래와 같이 이용 가능한 미디어 프로세싱 기능들을 발견할 수 있다. NBMP 기능 리포지토리(105)는 요청된 프로세싱을 수행할 수 있는 미디어 프로세싱 기능에 대해 외부 엔티티가 질의할 수 있게 하기 위한 기능 발견 인터페이스(또는 API)를 제공할 수 있다. 작업 흐름 관리자(103)는 탐색 가능한 미디어 프로세싱 기능들의 목록을 제공하는 디렉토리 서비스에 액세스할 수 있다. 작업 흐름 관리자(103)는 작업 흐름에 대한 적절한 기능들을 찾기 위해 작업 흐름 설명 내의 미디어 프로세싱 태스크들의 설명을 사용할 수 있다.Workflow manager 103 may discover available media processing functions as follows. The NBMP function repository 105 may provide a function discovery interface (or API) to enable external entities to query for media processing functions capable of performing requested processing. Workflow manager 103 can access a directory service that provides a searchable list of media processing functions. Workflow manager 103 can use the description of media processing tasks in the workflow description to find the appropriate functions for the workflow.

작업 흐름에 대한 미디어 프로세싱 태스크들의 선택은 아래에서 기술될 수 있다. 미디어 프로세싱에 대한 요청이 NBMP 소스(101)로부터 수신될 때, 작업 흐름 관리자(103)는 작업 흐름을 수행할 수 있는 모든 이용 가능한 기능들의 목록을 찾기 위해 기능 리포지토리(105)를 탐색할 수 있다. NBMP 소스(101)로부터의 작업 흐름 설명을 사용하여, 작업 흐름 관리자(103)는, NBMP 소스(101)로부터의 미디어 프로세싱을 위한 정보에 의존할 수 있는, 작업 흐름을 구현할 기능들을 기능 리포지토리(105)로부터 찾을 수 있다. 미디어 프로세싱에 대한 정보는 입력 및 출력 설명, 요청된 프로세싱의 설명, 및 기능 디렉토리(105)에 있는 기능들에 대한 다른 디스크립터들 내의 정보를 포함할 수 있다. 작업 흐름에 포함될 적절한 미디어 프로세싱 태스크들에 소스 요청들을 매핑하는 것은 네트워크에서의 NBMP의 구현의 일부일 수 있다. 태스크 생성 시에 입력 포트 이름들 및 출력 포트 이름들로 입력 소스들을 참조하고 링크시키기 위해, 입력 포트들 및 출력 포트들이 입력 스트림들을 참조하는 데 사용될 수 있다.The selection of media processing tasks for a workflow can be described below. When a request for media processing is received from the NBMP source 101, the workflow manager 103 can search the function repository 105 to find a list of all available functions that can perform the workflow. Using the workflow description from the NBMP source 101, the workflow manager 103 creates a function repository 105 that will implement the workflow, which can rely on information for media processing from the NBMP source 101. ) can be found from Information about media processing may include input and output descriptions, descriptions of requested processing, and information in other descriptors for functions in function directory 105 . Mapping source requests to the appropriate media processing tasks to be included in the workflow may be part of the implementation of NBMP in the network. Input ports and output ports can be used to reference input streams to reference and link input sources by input port names and output port names when creating a task.

태스크들로서 인스턴스화될 적절한 기능들에 대한 탐색은 기능 발견 API를 사용하여 작업 흐름 관리자(103)에 의해 수행될 수 있다. 대안적으로, 작업 흐름 관리자(103)는 기능 발견 API를 사용하여 기능 리포지토리(105)에서 일부 또는 모든 적합한 기능들의 상세 정보를 검색할 수 있다. 작업 흐름 관리자(103)는 이어서 NBMP 소스(101)로부터의 미디어 프로세싱에 대한 정보를 각각의 기능의 상이한 디스크립터들과 비교할 수 있다.The search for appropriate functions to be instantiated as tasks can be performed by the workflow manager 103 using the function discovery API. Alternatively, workflow manager 103 may use a function discovery API to retrieve details of some or all suitable functions from function repository 105 . Workflow manager 103 may then compare information about media processing from NBMP source 101 to different descriptors of each function.

선택된 미디어 프로세싱 태스크들이 작업 흐름에 구성될 수 있다. 작업 흐름에 포함될 기능들이 식별될 때, NBMP 작업 흐름 관리자(103)는 해당 기능들을 각자의 태스크들로서 인스턴스화하고 태스크들이 작업 흐름에 추가될 수 있도록 태스크들을 구성할 수 있다. NBMP 작업 흐름 관리자(103)는 NBMP 소스(101)로부터 수신되는 미디어 프로세싱 정보로부터 구성 데이터를 추출하고 대응하는 태스크들을 구성할 수 있다. 태스크들의 구성은 태스크 API(예를 들면, NBMP 태스크 API)를 사용하여 수행될 수 있다.Selected media processing tasks can be configured into a workflow. When functions to be included in the workflow are identified, the NBMP workflow manager 103 can instantiate those functions as respective tasks and compose the tasks so that they can be added to the workflow. The NBMP workflow manager 103 may extract configuration data from media processing information received from the NBMP source 101 and configure corresponding tasks. Configuration of tasks may be performed using a task API (eg, NBMP task API).

태스크 할당 및 분배는 아래에서 기술될 수 있다. 작업 흐름 관리자(103)는 프로세싱 배포를 수행하고 미디어 프로세싱 엔티티들을 구성하기 위해 작업 흐름을 사용할 수 있다. 일 예에서, 계산 집약적인 미디어 프로세싱 요청들의 경우, 작업 흐름 관리자(103)는 다수의 계산 인스턴스들을 셋업하고 다수의 계산 인스턴스들 간에 작업 부하를 분배할 수 있다. 따라서, 작업 흐름 관리자(103)는 필요에 따라 다수의 계산 인스턴스들을 연결시켜 구성할 수 있다. 일 예에서, 작업 흐름 관리자(103)는 동일한 태스크를 다수의 인스턴스들에 할당하고, 선택된 스케줄링 메커니즘을 사용하여 다수의 인스턴스들 간에 작업 부하를 분배하기 위해 로드 밸런서를 프로비저닝한다. 대안적인 예에서, 작업 흐름 관리자(103)는 동일한 태스크의 상이한 동작들을 상이한 인스턴스들(예를 들면, 병렬 동작들)에 할당한다. 위에서 기술된 2개의 예 모두에서, 작업 흐름 관리자(103)는 인스턴스들 간의 작업 흐름 경로들을 셋업할 수 있고, 따라서 적절한 작업 부하가 성공적으로 실현될 수 있다. 작업 흐름 관리자(103)는 프로세싱된 미디어 데이터/스트림들을 작업 흐름 그래프에서의 다음 태스크로 푸시하도록(또는 이들이 풀 메커니즘을 통해 이용 가능하게 되도록) 태스크들을 구성할 수 있다.Task assignment and distribution may be described below. Workflow manager 103 can use workflows to perform processing distribution and organize media processing entities. In one example, for compute intensive media processing requests, workflow manager 103 may set up multiple compute instances and distribute the workload among the multiple compute instances. Thus, the workflow manager 103 can be configured by connecting multiple calculation instances as needed. In one example, the workflow manager 103 provisions a load balancer to assign the same task to multiple instances and distribute the workload among the multiple instances using a selected scheduling mechanism. In an alternative example, the workflow manager 103 assigns different operations of the same task to different instances (eg, parallel operations). In both examples described above, the workflow manager 103 can set up workflow paths between instances, so that appropriate workloads can be successfully realized. The workflow manager 103 can configure tasks to push the processed media data/streams to the next task in the workflow graph (or make them available via a pull mechanism).

작업 흐름 관리자(103)가 NBMP 소스(101)로부터 WDD를 수신할 때, 작업 흐름 관리자(103)는 작업 흐름에 삽입될 미디어 프로세싱 기능들의 선택을 수행할 수 있다. 작업 흐름에 포함할 태스크들의 목록이 작성될 때, 작업 흐름 관리자(103)는 이어서 작업 흐름을 준비하기 위해 태스크들을 연결시킬 수 있다.When the workflow manager 103 receives the WDD from the NBMP source 101, the workflow manager 103 may perform selection of media processing functions to be inserted into the workflow. When the list of tasks to include in the workflow is created, the workflow manager 103 can then associate the tasks to prepare the workflow.

작업 흐름 관리자(103)는, 예를 들어, WDD로부터의 그래프(예를 들면, DAG)에 의해 표현되는 바와 같은, 작업 흐름을 생성할 수 있다. 도 2는 본 개시의 실시예에 따른 그래프(예를 들면, DAG)(200)의 예를 도시한다. DAG(200)는 복수의 노드들(T1 내지 T6) 및 복수의 링크들(또는 연결들)(202 내지 208)을 포함할 수 있다. 일 예에서, DAG(200)는 작업 흐름(200)을 나타낸다.Workflow manager 103 may create a workflow, as represented by a graph (eg, DAG) from WDD, for example. 2 shows an example of a graph (eg, DAG) 200 according to an embodiment of the present disclosure. The DAG 200 may include a plurality of nodes T1 to T6 and a plurality of links (or connections) 202 to 208 . In one example, DAG 200 represents workflow 200 .

DAG(200)의 각각의 노드는 작업 흐름(200)에서의 미디어 프로세싱 태스크를 나타낼 수 있다. DAG(200)에서 제1 노드(예를 들면, 노드(T1))를 제2 노드(예를 들면, 노드(T2))에 연결시키는 링크(예를 들면, 링크(202))는 제1 노드(예를 들면, 노드(T1))의 출력을 제2 노드(예를 들면, 노드(T2))에 대한 입력으로서 전송하는 것을 나타낼 수 있다.Each node of DAG 200 may represent a media processing task in workflow 200 . A link (eg, link 202) connecting a first node (eg, node T1) to a second node (eg, node T2) in the DAG 200 is the first node It may indicate that the output of (eg, node T1) is transmitted as an input to a second node (eg, node T2).

일반적으로, 작업 흐름은 임의의 적절한 수의 입력(들)(또는 작업 흐름 입력(들)) 및 임의의 적절한 수의 출력(들)(또는 작업 흐름 출력(들))을 포함할 수 있다. 작업 흐름 입력(들)은 미디어 소스(111), 다른 작업 흐름(들) 등에 연결될 수 있고, 작업 흐름 출력(들)은 미디어 싱크(115), 다른 작업 흐름(들) 등에 연결될 수 있다. 작업 흐름(200)은 입력(201)과 출력들(209 및 210)을 갖는다. 일부 실시예에서, 작업 흐름(200)은 중간 노드들로부터의 하나 이상의 출력을 가질 수 있다.In general, a workflow may include any suitable number of input(s) (or workflow input(s)) and any suitable number of output(s) (or workflow output(s)). Workflow input(s) can be connected to media source 111, other workflow(s), etc., and workflow output(s) can be connected to media sink 115, other workflow(s), etc. Workflow 200 has an input 201 and outputs 209 and 210 . In some embodiments, task flow 200 may have one or more outputs from intermediate nodes.

본 개시의 일부 양태에 따르면, 상태 보고서들은 기능들에 대한 변수들의 정보 및 이벤트들의 정보를 포함할 수 있다. 예를 들어, NBMP 기능은 프로세싱 동작의 구현이다. 일부 실시예에서, NBMP 기능은 독립형 및 자기 완비적 미디어 프로세싱 동작과 프로세싱 동작의 대응하는 설명일 수 있다. 일부 예에서, 각각의 NBMP 기능에 대해, 설명에서 2개의 독립적인 디스크립터가 사용된다. 2개의 독립적인 디스크립터 중 하나는 NBMP 기능의 이벤트들에 대한 것이고 이벤트들 디스크립터라고 지칭되며, 2개의 독립적인 디스크립터 중 다른 하나는 변수들에 대한 것이고 변수들 디스크립터라고 지칭된다. 변수들 디스크립터는 변수들을 이해하는 데 사용되는, 수학적 정의, 단위, 형식, 범용 식별자 등과 같은, 변수들의 특성들을 포함한다. 따라서, 일부 예에서, 변수들 디스크립터는 자기 설명적(self-explanatory)일 수 있고, 변수들은 변수들 디스크립터로부터의 다른 텍스트들을 참조할 필요 없이 변수들 디스크립터에 기초하여 이해될 수 있다. 유사하게, 이벤트들 디스크립터는 이벤트들을 이해하는 데 사용되는 이벤트들의 특성들을 포함한다. 따라서, 일부 예에서, 이벤트들 디스크립터는 자기 설명적일 수 있고, 이벤트들은 이벤트들 디스크립터로부터의 다른 텍스트들을 참조할 필요 없이 이벤트들 디스크립터에 기초하여 이해될 수 있다.According to some aspects of the present disclosure, status reports may include information of variables and information of events for functions. For example, a NBMP function is an implementation of a processing operation. In some embodiments, NBMP functions may be stand-alone and self-contained media processing operations and corresponding descriptions of processing operations. In some examples, for each NBMP function, two independent descriptors are used in the description. One of the two independent descriptors is for events of the NBMP function and is referred to as the events descriptor, and the other of the two independent descriptors is for variables and is referred to as the variables descriptor. Variables descriptors contain properties of variables, such as mathematical definitions, units, formats, universal identifiers, etc., used to understand the variables. Thus, in some examples, the variables descriptor can be self-explanatory, and the variables can be understood based on the variables descriptor without the need to reference other text from the variables descriptor. Similarly, the events descriptor contains properties of events used to understand the events. Thus, in some examples, the events descriptor can be self-describing, and events can be understood based on the events descriptor without the need to reference other text from the events descriptor.

본 개시의 양태에 따르면, 서비스의 작업 흐름은 상이한 시스템들(플랫폼들, 클라우드 시스템들이라고도 지칭됨)에서 수행될 수 있다. 각각의 시스템은 시스템 변수들과 시스템 이벤트들을 가질 수 있다. 시스템 변수들 및 시스템 이벤트들은 상태 보고서에 포함될 수 있다.According to an aspect of the present disclosure, the work flow of a service may be performed on different systems (also referred to as platforms, cloud systems). Each system can have system variables and system events. System variables and system events can be included in status reports.

일부 실시예에서, 상태 보고서들은 자기 완비적 디스크립터들에 기초하여 정의된다. 일 예에서, 정기 보고서는 보고 디스크립터라고 지칭되는 자기 완비적 디스크립터에 기초하여 정의된다. 예를 들어, 정기 보고서는 보고 디스크립터에 기초하여 정의되는 객체를 포함할 수 있으며, 이 객체는 보고 디스크립터 객체라고 지칭된다. 보고 디스크립터 객체는 정기 보고서가 기능 변수들과 이벤트들은 물론, 시스템 변수들과 이벤트들의 서브세트를 포함할 수 있게 한다. 변수들(예를 들면, 기능 변수들 및 시스템 변수들)은 변수들 디스크립터에 기초하여 정의되는 양식(form)에 포함될 수 있으며, 이벤트들(예를 들면, 기능 이벤트들 및 시스템 이벤트들)은 이벤트들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있다. 따라서, 정기 보고서는 자기 설명적일 수 있으며, 변수들과 이벤트들은 변수들 디스크립터와 이벤트들 디스크립터에 기초하여 이해될 수 있다.In some embodiments, status reports are defined based on self-contained descriptors. In one example, periodic reports are defined based on self-contained descriptors referred to as reporting descriptors. For example, a periodic report may include an object defined based on a reporting descriptor, referred to as a reporting descriptor object. A reporting descriptor object allows periodic reports to include function variables and events as well as a subset of system variables and events. Variables (eg, functional variables and system variables) may be included in a form defined based on the variables descriptor, and events (eg, functional events and system events) may be events It can be included in a form defined based on these descriptors. Thus, periodic reports can be self-explanatory, and variables and events can be understood based on variables and events descriptors.

다른 예에서, 통지 보고서는 통지 디스크립터라고 지칭되는 자기 완비적 디스크립터에 기초하여 정의된다. 예를 들어, 통지 보고서는 통지 디스크립터에 기초하여 정의되는 객체를 포함할 수 있으며, 이 객체는 통지 디스크립터 객체라고 지칭된다. 통지 디스크립터 객체는 통지 보고서가 기능 변수들과 이벤트들은 물론, 시스템 변수들과 이벤트들의 서브세트를 포함할 수 있게 한다. 변수들(예를 들면, 기능 변수들 및 시스템 변수들)은 변수들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있으며, 이벤트들(예를 들면, 기능 이벤트들 및 시스템 이벤트들)은 이벤트들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있다. 따라서, 통지 보고서는 자기 설명적일 수 있으며, 변수들과 이벤트들은 변수들 디스크립터와 이벤트들 디스크립터에 기초하여 이해될 수 있다.In another example, a notification report is defined based on a self-contained descriptor referred to as a notification descriptor. For example, a notification report may include an object defined based on a notification descriptor, and this object is referred to as a notification descriptor object. A notification descriptor object allows a notification report to include functional variables and events as well as a subset of system variables and events. Variables (eg, functional variables and system variables) may be included in a form defined based on the variables descriptor, and events (eg, functional events and system events) may be included in the events descriptor. can be included in a form defined on the basis of Thus, notification reports can be self-explanatory, and variables and events can be understood based on variables and events descriptors.

다른 예에서, 모니터링 보고서는 모니터링 디스크립터라고 지칭되는 자기 완비적 디스크립터에 기초하여 정의된다. 예를 들어, 모니터링 보고서는 모니터링 디스크립터에 기초하여 정의되는 객체를 포함할 수 있으며, 이 객체는 모니터링 디스크립터 객체라고 지칭된다. 모니터링 디스크립터 객체는 모니터링 보고서가 기능 변수들과 이벤트들은 물론, 시스템 변수들과 이벤트들의 서브세트를 포함할 수 있게 한다. 변수들(예를 들면, 기능 변수들 및 시스템 변수들)은 변수들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있으며, 이벤트들(예를 들면, 기능 이벤트들 및 시스템 이벤트들)은 이벤트들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있다. 따라서, 모니터링 보고서는 자기 설명적일 수 있으며, 변수들과 이벤트들은 변수들 디스크립터와 이벤트들 디스크립터에 기초하여 이해될 수 있다.In another example, a monitoring report is defined based on a self-contained descriptor referred to as a monitoring descriptor. For example, the monitoring report may include an object defined based on the monitoring descriptor, and this object is referred to as a monitoring descriptor object. A monitoring descriptor object allows a monitoring report to include functional variables and events as well as a subset of system variables and events. Variables (eg, functional variables and system variables) may be included in a form defined based on the variables descriptor, and events (eg, functional events and system events) may be included in the events descriptor. can be included in a form defined on the basis of Thus, a monitoring report can be self-describing, and variables and events can be understood based on the variables and events descriptor.

구체적으로, 일부 예에서, 각각의 기능은 변수들 디스크립터에 따라 기술되는 변수들의 목록을 포함할 수 있다.Specifically, in some examples, each function may include a list of variables described according to a variables descriptor.

도 3은 본 개시의 일부 실시예에 따른 기능에서의 변수들의 목록을 도시한다. 도 3에 도시된 바와 같이, 기능은, Variable-1, Variable-2, Variable-3 등과 같은, 하나 이상의 변수를 포함한다. 보고 액션에 응답하여 정기 보고서에 변수들 또는 변수들의 서브세트가 포함될 수 있다. 모니터링 액션에 응답하여 모니터링 보고서에 변수들 또는 변수들의 서브세트가 포함될 수 있다. 통지 액션에 응답하여 통지 보고서에 변수들 또는 변수들의 서브세트가 포함될 수 있다.3 shows a list of variables in a function according to some embodiments of the present disclosure. As shown in FIG. 3, a function includes one or more variables, such as Variable-1, Variable-2, Variable-3, and the like. Variables or subsets of variables may be included in periodic reports in response to reporting actions. Variables or subsets of variables may be included in the monitoring report in response to the monitoring action. Variables or subsets of variables may be included in the notification report in response to the notification action.

일부 실시예에서, 변수들 디스크립터에 따라 정의되는 변수들 디스크립터 객체가 상태 보고서에 포함될 수 있다. 변수들 디스크립터 객체는 변수들과 연관된 객체들의 어레이를 포함할 수 있다. 변수와 연관된 객체는 변수의 특성들을 포함할 수 있다. 예를 들어, Object-1은 Variable-1의 특성들을 포함하고; Object-2는 Variable-2의 특성들을 포함하며; Object-3은 Variable-3의 특성들을 포함한다.In some embodiments, a variables descriptor object defined according to the variables descriptor may be included in the status report. A variables descriptor object can contain an array of objects associated with variables. An object associated with a variable may contain properties of the variable. For example, Object-1 contains the properties of Variable-1; Object-2 contains the properties of Variable-2; Object-3 contains the properties of Variable-3.

도 4는 본 개시의 일부 실시예에 따른 변수에 대한 특성들의 테이블을 도시한다. 테이블은 특성들의 설명을 또한 포함한다. 예를 들어, 변수와 연관된 객체는 변수에 대한 이름, 변수에 대한 정의, 변수의 값, 변수에 대한 단위, 변수에 대한 파라미터 유형 및 어쩌면 변수에 대한 범위(변수에 대한 min 값 및 max 값) 등을 포함한다.4 shows a table of properties for a variable according to some embodiments of the present disclosure. The table also contains descriptions of properties. For example, the object associated with a variable is the name for the variable, the definition for the variable, the value for the variable, the unit for the variable, the parameter type for the variable, and possibly the scope for the variable (min and max values for the variable), etc. includes

도 5는 본 개시의 일부 실시예에 따른 변수들 디스크립터 스키마의 예를 도시한다. 도시된 바와 같이, 변수들 디스크립터는 변수들과 연관된 객체들(예를 들면, 항목들)의 어레이이다.5 shows an example of a variables descriptor schema according to some embodiments of the present disclosure. As shown, the variables descriptor is an array of objects (eg, items) associated with the variables.

게다가, 일부 예에서, 각각의 기능은 이벤트들 디스크립터에 따라 기술되는 이벤트들의 목록을 포함한다.Additionally, in some examples, each function includes a list of events described according to an events descriptor.

도 6은 본 개시의 일부 실시예에 따른 기능에서의 이벤트들의 목록을 도시한다. 도 6에 도시된 바와 같이, 기능은, Event-1, Event-2 등과 같은, 하나 이상의 이벤트를 포함한다. 보고 액션에 응답하여 정기 보고서에 이벤트들 또는 이벤트들의 서브세트가 포함될 수 있다. 모니터링 액션에 응답하여 모니터링 보고서에 이벤트들 또는 이벤트들의 서브세트가 포함될 수 있다. 통지 액션에 응답하여 통지 보고서에 이벤트들 또는 이벤트들의 서브세트가 포함될 수 있다.6 shows a list of events in a function according to some embodiments of the present disclosure. As shown in FIG. 6, a function includes one or more events, such as Event-1, Event-2, and the like. Events or a subset of events may be included in the periodic report in response to the reporting action. Events or a subset of events may be included in the monitoring report in response to the monitoring action. Events or a subset of events may be included in a notification report in response to a notification action.

일부 실시예에서, 이벤트들 디스크립터에 따라 정의되는 이벤트들 디스크립터 객체가 상태 보고서에 포함될 수 있다. 이벤트들 디스크립터 객체는 이벤트들과 연관된 객체들의 어레이를 포함할 수 있다. 이벤트와 연관된 객체는 이벤트의 특성들을 포함할 수 있다. 예를 들어, Object-1은 Event-1의 특성들을 포함하고; Object-2는 Event-2의 특성들을 포함한다.In some embodiments, an events descriptor object defined according to the events descriptor may be included in the status report. The events descriptor object can contain an array of objects associated with events. An object associated with an event may include properties of the event. For example, Object-1 contains the properties of Event-1; Object-2 contains the properties of Event-2.

도 7은 본 개시의 일부 실시예에 따른 이벤트에 대한 특성들의 테이블을 도시한다. 테이블은 특성들의 설명을 또한 포함한다. 예를 들어, 이벤트와 연관된 객체는 이벤트의 이름, 이벤트의 정의 등을 포함한다.7 shows a table of characteristics for an event according to some embodiments of the present disclosure. The table also contains descriptions of properties. For example, an object associated with an event includes a name of the event, a definition of the event, and the like.

도 8은 본 개시의 일부 실시예에 따른 이벤트들 디스크립터 스키마의 예를 도시한다. 도시된 바와 같이, 이벤트들 디스크립터는 이벤트들과 연관된 객체들(항목들)의 어레이를 포함할 수 있다.8 shows an example of an events descriptor schema according to some embodiments of the present disclosure. As shown, the events descriptor may include an array of objects (items) associated with the events.

본 개시의 일 양태에 따르면, 보고는 목적지에 정보를 정기적으로 보고하는(예를 들면, 정기 보고서를 생성하여 송신하는) 행위이다. 일부 실시예에서, 보고는 요청에 응답하여 셋업될 수 있다. 일부 예에서, 요청 엔티티는 요청을 보고 엔티티로 송신한다. 요청은 보고 디스크립터에 따라 정의되는 제1 보고 디스크립터 객체를 포함한다. 제1 보고 디스크립터 객체는 보고할 원하는 변수들과 이벤트들의 목록, 보고서를 송신할 목적지 등을 포함할 수 있다. 이어서, 보고 엔티티는, 제1 보고 디스크립터 객체에 정의된 목적지로, 제1 보고 디스크립터 객체에 기술된 이벤트들 및 변수 값들을 송신한다. 예를 들어, 정기 보고서는 제1 보고 디스크립터 객체와 유사한 제2 보고 디스크립터 객체를 포함한다. 제2 보고 디스크립터 객체는 변수들에 대한 업데이트된 값들 및 이벤트들의 발생 정보를 포함할 수 있다. 일반적으로, 보고 디스크립터는 보고의 빈도, 보고의 시작 시간 및 정기 보고서들의 전달 프로토콜을 또한 포함한다. 목적지가 요청 엔티티일 수 있고 요청 엔티티와 상이한 엔티티일 수 있음에 유의한다.According to one aspect of the present disclosure, reporting is the act of periodically reporting information to a destination (eg, generating and transmitting a periodic report). In some embodiments, reporting may be set up in response to a request. In some examples, a requesting entity sends a request to a reporting entity. The request includes a first report descriptor object defined according to the report descriptor. The first report descriptor object may include a list of desired variables and events to be reported, a destination to which the report is to be transmitted, and the like. The reporting entity then transmits the events and variable values described in the first reporting descriptor object to the destination defined in the first reporting descriptor object. For example, a periodic report includes a second reporting descriptor object similar to the first reporting descriptor object. The second reporting descriptor object may include updated values of variables and occurrence information of events. Typically, the reporting descriptor also includes the frequency of reporting, the start time of reporting, and the delivery protocol of periodic reports. Note that the destination can be a requesting entity or a different entity than the requesting entity.

미디어 프로세싱 시스템(100)에서, 요청 엔티티는 NBMP 소스(101) 또는 작업 흐름 관리자(103)일 수 있다. 보고 엔티티는 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크들일 수 있다.In the media processing system (100), the requesting entity may be a NBMP source (101) or a workflow manager (103). The reporting entity may be workflow manager 103 or media processing tasks.

일 예에서, 작업 흐름 관리자(103)는 정기적 보고에 대한 요청을, 태스크 API를 통해, 미디어 프로세싱 태스크(예를 들면, MPE(113)에 의해 실행되는 TASK 1)로 송신할 수 있다. 작업 흐름 관리자(103)는 원하는 변수들 및 이벤트들, 시간 간격, 그룹화, 목적지 및 프로토콜을 요청 내의 제1 보고 디스크립터 객체에 명시할 수 있다. 이어서, 미디어 프로세싱 태스크는 제1 보고 디스크립터 객체에 명시된 프로토콜을 사용하여 시간 간격에 기초하여 정기 보고서들을 목적지로 송신할 수 있다. 정기 보고서는 보고할 변수들과 이벤트들의 정보 및, 시간 간격, 그룹화, 목적지, 프로토콜 등과 같은, 다른 정보를 전달하는 제2 보고 디스크립터 객체를 포함한다.In one example, workflow manager 103 may send a request for periodic reporting to a media processing task (eg, TASK 1 executed by MPE 113 ) via a task API. The workflow manager 103 can specify the desired variables and events, time interval, grouping, destination and protocol in the first reporting descriptor object in the request. The media processing task may then send periodic reports to the destination based on the time interval using the protocol specified in the first report descriptor object. A periodic report includes a second reporting descriptor object that conveys information about variables and events to be reported and other information, such as time interval, grouping, destination, protocol, and the like.

다른 예에서, NBMP 소스(101)는 하나 이상의 보고 스킴을 셋업할 수 있고, 정기적 보고에 대한 요청을, 작업 흐름 API를 통해, 작업 흐름 관리자(103)로 송신할 수 있다. 이어서, 작업 흐름 관리자(103)는 정기 보고서들을 생성할 수 있거나 또는 작업 흐름 관리자(103)는 정기 보고서들을 생성하도록 미디어 프로세싱 태스크에 요청할 수 있다. NBMP 소스(101)는 원하는 변수들 및 이벤트들, 시간 간격, 그룹화, 목적지 및 프로토콜을 요청 내의 제1 보고 디스크립터 객체에 명시할 수 있다. 이어서, 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크는 제1 보고 디스크립터 객체에 명시된 프로토콜을 사용하여 시간 간격에 기초하여 정기 보고서들을 목적지로 송신할 수 있다. 정기 보고서는 보고할 변수들과 이벤트들의 정보 및, 시간 간격, 그룹화, 목적지, 프로토콜 등과 같은, 다른 정보를 전달하는 제2 보고 디스크립터 객체를 포함한다.In another example, the NBMP source 101 may set up one or more reporting schemes and may send a request for periodic reporting to the workflow manager 103 via a workflow API. The workflow manager 103 can then generate periodic reports or the workflow manager 103 can request the media processing task to generate periodic reports. The NBMP source 101 may specify the desired variables and events, time interval, grouping, destination and protocol in the first reporting descriptor object in the request. The workflow manager 103 or media processing task can then send periodic reports to the destination based on the time interval using the protocol specified in the first report descriptor object. A periodic report includes a second reporting descriptor object that conveys information about variables and events to be reported and other information, such as time interval, grouping, destination, protocol, and the like.

일부 실시예에서, HTTP/1.1이 프로토콜로서 사용되고, POST 방법이 POST 메시지들에서 정기 보고서들을 송신하는 데 사용된다. 예를 들어, POST 메시지의 본문(body)은 보고 디스크립터 객체를 포함한다. 일부 예에서, POST 메시지의 본문은 보고서를 식별하기 위해 요청 디스크립터 객체를 또한 포함한다. 일 예에서, 요청 디스크립터 객체는 요청의 ID(identification), 우선순위 및 미디어 프로세싱 태스크에 대한 태스크 ID(identification)를 포함한다.In some embodiments, HTTP/1.1 is used as the protocol, and the POST method is used to send periodic reports in POST messages. For example, the body of a POST message contains a report descriptor object. In some examples, the body of the POST message also includes a request descriptor object to identify the report. In one example, the request descriptor object includes an identification (ID) of the request, a priority, and a task identification (ID) for the media processing task.

도 9는 보고 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시하고, 도 10은 본 개시의 일부 실시예에 따른 보고 디스크립터 스키마의 예를 도시한다. system-events가 미디어 프로세싱 시스템에 속하는 이벤트들을 포함하고 기능의 이벤트들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 또한 system-variables가 미디어 프로세싱 시스템에 속하는 변수들을 포함하고 기능의 변수들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 일부 실시예에서, (기능) 변수들은 제1 변수들 디스크립터 객체에 포함될 수 있고, 시스템 변수들은 제2 변수들 디스크립터 객체에 포함될 수 있으며; (기능) 이벤트들은 제1 이벤트들 디스크립터 객체에 포함될 수 있고, 시스템 이벤트들은 제2 이벤트들 디스크립터 객체에 포함될 수 있다.9 illustrates a table of parameters and corresponding types for parameters in a reporting descriptor, and FIG. 10 illustrates an example reporting descriptor schema according to some embodiments of the present disclosure. Note that system-events contains events belonging to the media processing system and can be provided by the cloud in the same format as the function's events. Also note that system-variables contains variables that belong to the media processing system and can be provided by the cloud in the same format as the function's variables. In some embodiments, (functional) variables may be included in a first variables descriptor object, and system variables may be included in a second variables descriptor object; (Functional) events may be included in the first events descriptor object, and system events may be included in the second events descriptor object.

본 개시의 다른 양태에 따르면, 통지는 이벤트가 발생할 때 목적지에 정보를 보고하는(예를 들면, 통지 보고서를 생성하여 송신하는) 행위이다. 일부 실시예에서, 통지는 요청에 응답하여 셋업된다. 일부 예에서, 요청 엔티티는 요청을 통지 엔티티로 송신한다. 요청은 통지 디스크립터에 따라 정의되는 제1 통지 디스크립터 객체를 포함한다. 제1 통지 디스크립터 객체는, 예를 들어, 원하는 변수들과 이벤트들의 목록, 보고서를 송신할 목적지 등을 명시할 수 있다. 이어서, 제1 통지 디스크립터 객체에 나열되는 이벤트들 중 하나 이상이 발생할 때, 통지 엔티티는, 제1 통지 디스크립터 객체에 정의된 목적지로, 제1 통지 디스크립터 객체에 기술된 이벤트들과 변수 값들을 송신한다. 예를 들어, 통지 보고서는 제1 통지 디스크립터 객체와 유사한 제2 통지 디스크립터 객체를 포함한다. 제2 통지 디스크립터 객체는 변수들에 대한 업데이트된 값들 및 이벤트들의 발생 정보를 포함할 수 있다. 일반적으로, 통지 디스크립터는, 시작 시간, 통지 간격, 전달 프로토콜 등과 같은, 통지에 대한 다른 적합한 정보를 또한 포함할 수 있다. 목적지가 요청 엔티티일 수 있고 요청 엔티티와 상이한 엔티티일 수 있음에 유의한다.According to another aspect of the present disclosure, notification is the act of reporting (eg, generating and sending a notification report) information to a destination when an event occurs. In some embodiments, notifications are set up in response to requests. In some examples, a requesting entity sends a request to a notification entity. The request includes a first notification descriptor object defined according to the notification descriptor. The first notification descriptor object may specify, for example, a list of desired variables and events, a destination to which a report is to be transmitted, and the like. Subsequently, when one or more of the events listed in the first notification descriptor object occurs, the notification entity transmits the events and variable values described in the first notification descriptor object to the destination defined in the first notification descriptor object. . For example, the notification report includes a second notification descriptor object similar to the first notification descriptor object. The second notification descriptor object may include updated values of variables and occurrence information of events. In general, the notification descriptor may also include other suitable information about the notification, such as start time, notification interval, delivery protocol, and the like. Note that the destination can be a requesting entity or a different entity than the requesting entity.

미디어 프로세싱 시스템(100)에서, 요청 엔티티는 NBMP 소스(101) 또는 작업 흐름 관리자(103)일 수 있다. 통지 엔티티는 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크들일 수 있다.In the media processing system (100), the requesting entity may be a NBMP source (101) or a workflow manager (103). A notification entity may be a workflow manager 103 or media processing tasks.

일 예에서, 작업 흐름 관리자(103)는 통지에 대한 요청을, 태스크 API를 통해, 미디어 프로세싱 태스크(예를 들면, MPE(113)에 의해 실행되는 TASK 1)로 송신할 수 있다. 작업 흐름 관리자(103)는 통지에 대한 구독된 이벤트들의 목록, 변수들의 목록, 목적지 및 프로토콜을 요청 내의 제1 통지 디스크립터 객체에 명시할 수 있다. 이어서, 구독된 이벤트들의 목록 내의 하나 이상의 이벤트가 발생할 때, 미디어 프로세싱 태스크는 통지 디스크립터에 명시된 프로토콜을 사용하여 통지 보고서를 목적지로 송신할 수 있다. 통지 보고서는 변수들의 목록 내의 변수들의 정보, 구독된 이벤트들의 목록 내의 이벤트들의 정보 및 다른 정보를 전달하는 제2 통지 디스크립터 객체를 포함한다.In one example, workflow manager 103 may send a request for a notification to a media processing task (eg, TASK 1 executed by MPE 113 ) via a task API. The workflow manager 103 can specify the list of subscribed events, list of variables, destination, and protocol for the notification in the first notification descriptor object in the request. Subsequently, when one or more events in the list of subscribed events occur, the media processing task may send a notification report to the destination using the protocol specified in the notification descriptor. The notification report includes a second notification descriptor object carrying information of variables in the list of variables, information of events in the list of subscribed events, and other information.

다른 예에서, NBMP 소스(101)는 하나 이상의 통지 스킴을 셋업할 수 있고, 통지에 대한 요청을, 작업 흐름 API를 통해, 작업 흐름 관리자(103)로 송신할 수 있다. 이어서, 작업 흐름 관리자(103)는 통지 보고서들을 생성할 수 있거나 또는 작업 흐름 관리자(103)는 통지 보고서들을 생성하도록 미디어 프로세싱 태스크에 요청할 수 있다. NBMP 소스(101)는 구독된 이벤트들의 목록, 변수들의 목록, 목적지 및 프로토콜을 요청 내의 제1 통지 디스크립터 객체에 명시할 수 있다. 이어서, 구독된 이벤트들의 목록 내의 이벤트들 중 임의의 것이 발생할 때, 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크는 통지 디스크립터에 명시된 프로토콜을 사용하여 통지 보고서를 목적지로 송신할 수 있다. 통지 보고서는 변수들의 정보와 이벤트들의 정보, 및, 목적지, 프로토콜 등과 같은, 정기 보고서의 다른 정보를 전달하는 제2 통지 디스크립터 객체를 포함한다.In another example, the NBMP source 101 may set up one or more notification schemes and may send a request for notification to the workflow manager 103 via a workflow API. Workflow manager 103 may then generate notification reports or workflow manager 103 may request the media processing task to generate notification reports. The NBMP source 101 may specify a list of subscribed events, a list of variables, a destination and a protocol in the first notification descriptor object in the request. Then, when any of the events in the list of subscribed events occur, the workflow manager 103 or media processing task may send a notification report to the destination using the protocol specified in the notification descriptor. The notification report includes a second notification descriptor object carrying information of variables, information of events, and other information of the periodic report, such as destination, protocol, and the like.

일부 실시예에서, HTTP/1.1이 프로토콜로서 사용되고, POST 방법이 POST 메시지들에서 통지 보고서들을 송신하는 데 사용된다. 예를 들어, POST 메시지의 본문은 통지 디스크립터 객체를 포함한다. 일부 예에서, POST 메시지의 본문은 통지를 식별하기 위해 요청 디스크립터 객체를 또한 포함한다. 일 예에서, 요청 디스크립터 객체는 요청의 ID(identification), 우선순위 및 미디어 프로세싱 태스크에 대한 태스크 ID(identification)를 포함한다.In some embodiments, HTTP/1.1 is used as the protocol, and the POST method is used to send notification reports in POST messages. For example, the body of a POST message contains a notification descriptor object. In some examples, the body of the POST message also includes a request descriptor object to identify the notification. In one example, the request descriptor object includes an identification (ID) of the request, a priority, and a task identification (ID) for the media processing task.

도 11은 통지 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시하고, 도 12a 및 도 12b는 본 개시의 일부 실시예에 따른 통지 디스크립터 스키마의 예를 도시한다. system-events가 미디어 프로세싱 시스템에 속하는 이벤트들을 포함하고 기능의 이벤트들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 또한 system-variables가 미디어 프로세싱 시스템에 속하는 변수들을 포함하고 기능의 변수들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 일부 실시예에서, (기능) 변수들은 제1 변수들 디스크립터 객체에 포함될 수 있고, 시스템 변수들은 제2 변수들 디스크립터 객체에 포함될 수 있으며; (기능) 이벤트들은 제1 이벤트들 디스크립터 객체에 포함될 수 있고, 시스템 이벤트들은 제2 이벤트들 디스크립터 객체에 포함될 수 있다.11 shows a table of parameters and corresponding types for parameters in a notification descriptor, and FIGS. 12A and 12B show examples of notification descriptor schemas according to some embodiments of the present disclosure. Note that system-events contains events belonging to the media processing system and can be provided by the cloud in the same format as the function's events. Also note that system-variables contains variables that belong to the media processing system and can be provided by the cloud in the same format as the function's variables. In some embodiments, (functional) variables may be included in a first variables descriptor object, and system variables may be included in a second variables descriptor object; (Functional) events may be included in the first events descriptor object, and system events may be included in the second events descriptor object.

본 개시의 다른 양태에 따르면, 모니터링은 엔티티가 정보를 요청하고 요청된 정보를 수신하는 행위이다. 일부 실시예에서, 모니터링은 요청에 응답하여 수행될 수 있다. 일부 예에서, 모니터링 엔티티(모니터링하는 엔티티)는 모니터링 업데이트 요청을 모니터링되는 엔티티(모니터링되고 있는 엔티티)로 송신한다. 모니터링 업데이트 요청은 모니터링 디스크립터에 따라 정의되는 제1 모니터링 디스크립터 객체를 포함한다. 제1 모니터링 디스크립터 객체는, 예를 들어, 원하는 변수들과 이벤트들의 목록을 명시할 수 있다. 모니터링 업데이트 요청에 응답하여, 모니터링되는 엔티티는 요청된 변수들의 값들 및 발생한 원하는 이벤트들로부터의 이벤트들의 서브세트를 전달하는 제2 모니터링 디스크립터 객체를 갖는 모니터링 보고서를 모니터링 엔티티로 송신한다.According to another aspect of the present disclosure, monitoring is the act of an entity requesting information and receiving the requested information. In some embodiments, monitoring may be performed in response to a request. In some examples, a monitoring entity (monitoring entity) sends a monitoring update request to a monitored entity (monitoring entity). The monitoring update request includes a first monitoring descriptor object defined according to the monitoring descriptor. The first monitoring descriptor object may specify, for example, a list of desired variables and events. In response to the monitoring update request, the monitored entity sends to the monitoring entity a monitoring report having a second monitoring descriptor object conveying the values of the requested variables and a subset of events from the desired events that occurred.

미디어 프로세싱 시스템(100)에서, 모니터링 엔티티는 NBMP 소스(101) 또는 작업 흐름 관리자(103)일 수 있다. 모니터링되는 엔티티는 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크들일 수 있다.In the media processing system 100 , the monitoring entity may be a NBMP source 101 or a workflow manager 103 . The monitored entity may be the workflow manager 103 or media processing tasks.

일 예에서, 작업 흐름 관리자(103)는 모니터링 업데이트 요청을, 태스크 API를 통해, 미디어 프로세싱 태스크(예를 들면, MPE(113)에 의해 실행되는 TASK 1)로 송신할 수 있다. 작업 흐름 관리자(103)는 원하는 변수들과 이벤트들을 모니터링 업데이트 요청 내의 제1 모니터링 디스크립터 객체에 명시할 수 있다. 모니터링 업데이트 요청에 응답하여, 미디어 프로세싱 태스크는 모니터링 보고서를 작업 흐름 관리자(103)로 송신할 수 있다. 모니터링 보고서는 보고할 변수들과 이벤트들의 정보를 전달하는 제2 모니터링 디스크립터 객체를 포함한다.In one example, workflow manager 103 may send a monitoring update request to a media processing task (eg, TASK 1 executed by MPE 113 ) via a task API. The workflow manager 103 can specify the desired variables and events in the first monitoring descriptor object in the monitoring update request. In response to the monitoring update request, the media processing task may send a monitoring report to workflow manager 103 . The monitoring report includes a second monitoring descriptor object that delivers information on variables and events to be reported.

다른 예에서, NBMP 소스(101)는 모니터링 업데이트 요청을, 작업 흐름 API를 통해, 작업 흐름 관리자(103)로 송신할 수 있다. NBMP 소스(101)는 원하는 변수들과 이벤트들을 모니터링 업데이트 요청 내의 제1 모니터링 디스크립터 객체에 명시할 수 있다. 모니터링 업데이트 요청에 응답하여, 작업 흐름 관리자(103)는 모니터링 보고서를 생성하여 NBMP 소스(101)로 송신할 수 있다. 모니터링 보고서는 보고할 변수들과 이벤트들의 정보를 전달하는 제2 모니터링 디스크립터 객체를 포함한다.In another example, the NBMP source 101 may send a monitoring update request to the workflow manager 103 via a workflow API. The NBMP source 101 may specify the desired variables and events in the first monitoring descriptor object in the monitoring update request. In response to the monitoring update request, workflow manager 103 may generate and send a monitoring report to NBMP source 101 . The monitoring report includes a second monitoring descriptor object that delivers information on variables and events to be reported.

도 13은 모니터링 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시하고, 도 14는 본 개시의 일부 실시예에 따른 모니터링 디스크립터 스키마의 예를 도시한다. system-events가 미디어 프로세싱 시스템에 속하는 이벤트들을 포함하고 기능의 이벤트들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 또한 system-variables가 미디어 프로세싱 시스템에 속하는 변수들을 포함하고 기능의 변수들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 일부 실시예에서, (기능) 변수들은 제1 변수들 디스크립터 객체에 포함될 수 있고, 시스템 변수들은 제2 변수들 디스크립터 객체에 포함될 수 있으며; (기능) 이벤트들은 제1 이벤트들 디스크립터 객체에 포함될 수 있고, 시스템 이벤트들은 제2 이벤트들 디스크립터 객체에 포함될 수 있다.13 shows a table of parameters and corresponding types for parameters in a monitoring descriptor, and FIG. 14 shows an example of a monitoring descriptor schema according to some embodiments of the present disclosure. Note that system-events contains events belonging to the media processing system and can be provided by the cloud in the same format as the function's events. Also note that system-variables contains variables that belong to the media processing system and can be provided by the cloud in the same format as the function's variables. In some embodiments, (functional) variables may be included in a first variables descriptor object, and system variables may be included in a second variables descriptor object; (Functional) events may be included in the first events descriptor object, and system events may be included in the second events descriptor object.

일부 실시예에서, HTTP/1.1이 프로토콜로서 사용되고, POST 방법이 POST 메시지들에서 모니터링 보고서들을 송신하는 데 사용된다. 예를 들어, POST 메시지의 본문은 모니터링 디스크립터 객체를 포함한다. 일부 예에서, POST 메시지의 본문은 모니터링 보고서들을 식별하기 위해 요청 디스크립터 객체를 또한 포함한다.In some embodiments, HTTP/1.1 is used as the protocol, and the POST method is used to send monitoring reports in POST messages. For example, the body of a POST message contains a monitoring descriptor object. In some examples, the body of the POST message also includes a request descriptor object to identify monitoring reports.

도 15는 본 개시의 실시예에 따른 프로세스(1500)를 개략적으로 나타내는 플로차트를 도시한다. 일 예에서, 프로세스(1500)는, 미디어 프로세싱 시스템(100) 등과 같은, 클라우드에서 실행된다. 일부 실시예에서, 프로세스(1500)는 소프트웨어 명령어들로 구현되고, 따라서 프로세싱 회로가 소프트웨어 명령어들을 실행할 때, 프로세싱 회로는 프로세스(1500)를 수행한다. 프로세스는 (S1501)에서 시작되고 (S1510)으로 진행한다.15 shows a flowchart outlining a process 1500 according to an embodiment of the present disclosure. In one example, process 1500 is executed in the cloud, such as on media processing system 100 . In some embodiments, process 1500 is implemented as software instructions, so when processing circuitry executes the software instructions, processing circuitry performs process 1500. The process starts at (S1501) and proceeds to (S1510).

(S1510)에서, 변수와 연관된 제1 특성들을 포함하는 요청이 수신된다. 변수와 연관된 제1 특성들은 변수를 완전히 기술할 수 있다. 예를 들어, 제1 특성들은 변수의 정의, 변수의 단위, 변수의 형식, 변수의 범용 식별자 등을 포함한다. 변수는 제1 특성들로부터의 다른 텍스트들을 상호 참조하지 않고 제1 특성들에 기초하여 이해될 수 있다. 일부 실시예에서, 제1 특성들은 제1 변수들 디스크립터 객체의 일 부분이다. 제1 변수들 디스크립터 객체는 변수들과 제각기 연관된 객체들의 어레이를 포함한다. 변수들은 기능 변수들 또는 시스템 변수들일 수 있다. 요청은 이벤트들과 제각기 연관된 객체들의 어레이를 포함하는 제1 이벤트들 디스크립터 객체를 또한 포함할 수 있다. 이벤트들은 기능 이벤트들 또는 시스템 이벤트들일 수 있다.At S1510, a request including first characteristics associated with a variable is received. First characteristics associated with a variable may fully describe the variable. For example, the first characteristics include the definition of the variable, the unit of the variable, the type of the variable, the universal identifier of the variable, and the like. A variable can be understood based on the first characteristics without cross-referencing other texts from the first characteristics. In some embodiments, the first properties are part of a first variables descriptor object. The first variables descriptor object contains an array of objects each associated with variables. Variables can be functional variables or system variables. The request may also include a first events descriptor object containing an array of objects each associated with events. Events can be functional events or system events.

일 예에서, 요청은 NBMP 소스(101)로부터 작업 흐름 관리자(103)로 송신된다. 다른 예에서, 요청은 작업 흐름 관리자(103)로부터 미디어 프로세싱 태스크로 송신된다.In one example, a request is sent from NBMP source 101 to workflow manager 103 . In another example, a request is sent from workflow manager 103 to a media processing task.

(S1520)에서, 메시지가 생성되며, 메시지는 변수의 제1 특성들과 변수의 업데이트된 값을 포함한다.At S1520, a message is generated, and the message includes the first characteristics of the variable and the updated value of the variable.

일 실시예에서, 요청은 정기 보고서들을 요청하기 위한 제1 보고 디스크립터 객체를 포함한다. 제1 보고 디스크립터 객체는 변수들과 연관된 제1 변수들 디스크립터 객체, 이벤트들과 연관된 제1 이벤트들 디스크립터 객체, 및 보고 간격을 포함할 수 있다. 제1 보고 디스크립터 객체에 기초하여, 보고 간격에 따라 정기적으로 메시지가 생성된다. 메시지는 제2 보고 디스크립터 객체를 포함할 수 있다. 예를 들어, 제2 보고 디스크립터 객체는 변수들에 대한 업데이트된 값들을 갖는 제1 변수들 디스크립터 객체와 유사한 제2 변수들 디스크립터 객체를 포함한다. 메시지 내의 제2 보고 디스크립터 객체는 이벤트들의 발생들에 기초한 이벤트들의 서브세트를 갖는 제2 이벤트들 디스크립터 객체를 또한 포함할 수 있다.In one embodiment, the request includes a first reporting descriptor object for requesting periodic reports. The first reporting descriptor object may include a first variables descriptor object associated with variables, a first events descriptor object associated with events, and a reporting interval. Based on the first reporting descriptor object, a message is created periodically according to the reporting interval. The message may include a second report descriptor object. For example, the second reporting descriptor object includes a second variables descriptor object similar to the first variables descriptor object with updated values for the variables. The second reporting descriptor object in the message may also include a second events descriptor object having a subset of events based on occurrences of the events.

다른 실시예에서, 요청은 이벤트들의 발생들에 의해 트리거링되는 통지 보고를 요청하기 위한 제1 통지 디스크립터 객체를 포함한다. 제1 통지 디스크립터 객체는 변수들과 연관된 제1 변수들 디스크립터 객체, 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 포함할 수 있다. 이어서, 구독된 이벤트들 중 적어도 하나의 발생에 응답하여, 메시지가 생성된다. 메시지는 제1 통지 디스크립터 객체와 유사한 제2 통지 디스크립터 객체를 포함한다. 예를 들어, 제2 통지 디스크립터 객체는 제1 변수들 디스크립터 객체와 유사하지만 변수들에 대한 업데이트된 값들을 갖는 제2 변수들 디스크립터 객체를 포함한다. 제2 통지 디스크립터 객체는 구독된 이벤트들의 서브세트를 갖는 제2 이벤트들 디스크립터 객체를 또한 포함한다.In another embodiment, the request includes a first notification descriptor object to request a notification report triggered by occurrences of events. The first notification descriptor object may include a first variables descriptor object associated with variables and a first events descriptor object associated with events. Then, in response to the occurrence of at least one of the subscribed events, a message is generated. The message includes a second notification descriptor object similar to the first notification descriptor object. For example, the second notification descriptor object includes a second variables descriptor object similar to the first variables descriptor object but with updated values for the variables. The second notification descriptor object also includes a second events descriptor object with a subset of subscribed events.

다른 실시예에서, 요청은 모니터링 보고를 요청하기 위한 제1 모니터링 디스크립터 객체를 포함한다. 제1 모니터링 디스크립터 객체는 변수들과 연관된 제1 변수들 디스크립터 객체, 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 포함할 수 있다. 이어서, 요청에 응답하여, 메시지가 생성된다. 메시지는 제1 모니터링 디스크립터 객체와 유사한 제2 모니터링 디스크립터 객체를 포함한다. 예를 들어, 제2 모니터링 디스크립터 객체는 제1 변수들 디스크립터 객체와 유사하지만 변수들에 대한 업데이트된 값들을 갖는 제2 변수들 디스크립터 객체를 포함한다. 제2 모니터링 디스크립터 객체는 이벤트들의 서브세트를 갖는 제2 이벤트들 디스크립터 객체를 또한 포함한다.In another embodiment, the request includes a first monitoring descriptor object for requesting a monitoring report. The first monitoring descriptor object may include a first variables descriptor object associated with variables and a first events descriptor object associated with events. Then, in response to the request, a message is generated. The message includes a second monitoring descriptor object similar to the first monitoring descriptor object. For example, the second monitoring descriptor object includes a second variables descriptor object similar to the first variables descriptor object but with updated values for the variables. The second monitoring descriptor object also includes a second events descriptor object having a subset of events.

(S1530)에서, 메시지가 수신자로 송신되고, 프로세스는 S1599로 진행하여 종료된다.In (S1530), the message is transmitted to the recipient, and the process proceeds to S1599 and ends.

정기 보고서의 예에서, 제1 및 제2 보고 디스크립터 객체들은 목적지(예를 들면, url)를 포함하고, 메시지가 목적지로 송신된다.In the example of a periodic report, the first and second report descriptor objects contain a destination (eg url), and a message is sent to the destination.

통지 보고서의 예에서, 제1 및 제2 통지 디스크립터 객체들은 목적지(예를 들면, url)를 포함하고, 메시지가 목적지로 송신된다.In the notification report example, the first and second notification descriptor objects include a destination (eg, url), and a message is sent to the destination.

모니터링 보고서의 예에서, 메시지가 요청을 보낸 엔티티로 송신된다.In the monitoring report example, a message is sent to the entity that sent the request.

프로세스(1500)가 적절하게 적응될 수 있다. 프로세스(1500)의 단계(들)는 수정 및/또는 생략될 수 있다. 추가적인 단계(들)가 추가될 수 있다. 임의의 적합한 구현 순서가 사용될 수 있다.Process 1500 may be adapted as appropriate. Step(s) of process 1500 may be modified and/or omitted. Additional step(s) may be added. Any suitable order of implementation may be used.

위에서 설명된 기술은 컴퓨터 판독 가능 명령어들을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있으며 하나 이상의 컴퓨터 판독 가능 매체에 물리적으로 저장될 수 있다.The technology described above may be implemented as computer software using computer readable instructions and may be physically stored on one or more computer readable media.

본 개시의 방법들 및 실시예들은 개별적으로 사용되거나 임의의 순서로 조합될 수 있다. 게다가, 방법들(또는 실시예들), 기능들 또는 태스크들 각각은 프로세싱 회로(예를 들면, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비일시적 컴퓨터 판독 가능 매체에 저장된 프로그램을 실행한다.The methods and embodiments of this disclosure may be used individually or combined in any order. Moreover, each of the methods (or embodiments), functions or tasks may be implemented by a processing circuit (eg, one or more processors or one or more integrated circuits). In one example, one or more processors execute programs stored on non-transitory computer readable media.

위에서 설명된 기술은 컴퓨터 판독 가능 명령어들을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있으며 하나 이상의 컴퓨터 판독 가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 16은 개시된 주제의 특정 실시예들을 구현하기에 적합한 컴퓨터 시스템(1600)을 도시한다.The technology described above may be implemented as computer software using computer readable instructions and may be physically stored on one or more computer readable media. For example, FIG. 16 depicts a computer system 1600 suitable for implementing certain embodiments of the disclosed subject matter.

컴퓨터 소프트웨어는 하나 이상의 컴퓨터 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU) 등에 의해 직접 또는 인터프리테이션(interpretation), 마이크로 코드 실행 등을 통해 실행될 수 있는 명령어들을 포함하는 코드를 생성하기 위해 어셈블리, 컴파일, 링킹 또는 유사한 메커니즘들을 거칠 수 있는 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.Computer software is used to generate code containing instructions that can be executed directly or through interpretation, microcode execution, etc. by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc. It may be coded using any suitable machine code or computer language that may undergo compilation, linking or similar mechanisms.

명령어들은, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트 폰, 게임 디바이스, 사물 인터넷 디바이스 등을 포함한, 다양한 유형의 컴퓨터들 또는 그 컴포넌트들에서 실행될 수 있다.Instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smart phones, gaming devices, Internet of Things devices, and the like.

컴퓨터 시스템(1600)에 대해 도 16에 도시된 컴포넌트들은 본질적으로 예시적인 것이며, 본 개시의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능성의 범위에 대한 어떠한 제한도 암시하도록 의도되지 않는다. 컴포넌트들의 구성이 컴퓨터 시스템(1600)의 예시적인 실시예에 예시된 컴포넌트들 중 임의의 것 또는 이들의 임의의 조합에 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.The components shown in FIG. 16 for computer system 1600 are illustrative in nature and are not intended to suggest any limitation as to the scope of use or functionality of computer software implementing embodiments of the present disclosure. The configuration of the components should not be construed as having any dependency or requirement relating to any of the components illustrated in the illustrative embodiment of computer system 1600 or any combination thereof.

컴퓨터 시스템(1600)은 특정 인간 인터페이스 입력 디바이스들을 포함할 수 있다. 그러한 인간 인터페이스 입력 디바이스는, 예를 들어, 촉각적 입력(예컨대: 키스트로크, 스와이프, 데이터 글러브 움직임), 오디오 입력(예컨대: 음성, 박수), 시각적 입력(예컨대: 제스처), 후각적 입력(묘사되지 않음)을 통한 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스들은 또한, 오디오(예컨대: 음성, 음악, 주변 소리), 이미지들(예컨대: 스캔된 이미지들, 정지 이미지 카메라로부터 획득된 사진 이미지들), 비디오(예컨대, 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같은, 인간에 의한 의식적인 입력과 반드시 직접 관련되지는 않은 특정 미디어를 캡처하는 데 사용될 수 있다.Computer system 1600 may include certain human interface input devices. Such human interface input devices include, for example, tactile inputs (eg: keystrokes, swipes, data glove movements), audio inputs (eg voices, claps), visual inputs (eg gestures), olfactory inputs (eg not depicted) may respond to input by one or more human users. Human interface devices also include audio (eg: voice, music, ambient sound), images (eg: scanned images, photographic images obtained from a still image camera), video (eg two-dimensional video, stereoscopic video). It can be used to capture certain media that are not necessarily directly related to conscious input by humans, such as 3D video (including video).

입력 인간 인터페이스 디바이스들은 키보드(1601), 마우스(1602), 트랙패드(1603), 터치 스크린(1610), 데이터 글러브(도시되지 않음), 조이스틱(1605), 마이크로폰(1606), 스캐너(1607), 카메라(1608) 중 하나 이상(각각이 하나만 묘사되어 있음)을 포함할 수 있다.Input human interface devices include keyboard 1601, mouse 1602, trackpad 1603, touch screen 1610, data glove (not shown), joystick 1605, microphone 1606, scanner 1607, may include one or more of the cameras 1608 (only one of each is depicted).

컴퓨터 시스템(1600)은 특정 인간 인터페이스 출력 디바이스들을 또한 포함할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은, 예를 들어, 촉각적 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은 촉각적 출력 디바이스들(예를 들어, 터치 스크린(1610), 데이터 글러브(도시되지 않음) 또는 조이스틱(1605)에 의한 촉각적 피드백, 그러나 입력 디바이스들로서 역할하지 않는 촉각적 피드백 디바이스들도 있을 수 있음), 오디오 출력 디바이스들(예컨대: 스피커들(1609), 헤드폰들(묘사되지 않음)), 시각적 출력 디바이스들(예컨대, CRT 화면, LCD 화면, 플라스마 화면, OLED 화면을 포함하는 화면(1610), 각각이 터치 스크린 입력 능력을 갖거나 갖지 않고, 각각이 촉각적 피드백 능력을 갖거나 갖지 않음 - 그 일부는 2차원 시각적 출력 또는 입체 출력과 같은 수단을 통한 3차원 이상의 출력을 출력할 수 있음 -; 가상 현실 안경(묘사되지 않음), 홀로그래픽 디스플레이 및 연기 탱크(smoke tank)(묘사되지 않음)), 및 프린터들(묘사되지 않음)을 포함할 수 있다.Computer system 1600 may also include certain human interface output devices. Such human interface output devices may stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell/taste. Such human interface output devices may include tactile output devices (e.g., tactile feedback by touch screen 1610, data glove (not shown) or joystick 1605, but not serving as input devices). devices), audio output devices (e.g., speakers 1609, headphones (not depicted)), visual output devices (e.g., including CRT screens, LCD screens, plasma screens, OLED screens) screens 1610, each with or without touch screen input capabilities, each with or without tactile feedback capabilities - some of which provide three-dimensional or higher output through means such as two-dimensional visual output or stereoscopic output. capable of printing - may include virtual reality glasses (not depicted), holographic displays and smoke tanks (not depicted)), and printers (not depicted).

컴퓨터 시스템(1600)은 CD/DVD 또는 유사한 매체(1621)를 갖는 CD/DVD ROM/RW(1620)를 포함한 광학 매체, 썸 드라이브(1622), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(1623), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 디바이스 등과 같은 인간 액세스 가능 저장 디바이스들 및 이들과 연관된 매체를 또한 포함할 수 있다.Computer system 1600 includes optical media including CD/DVD ROM/RW 1620 with CD/DVD or similar media 1621, thumb drive 1622, removable hard drive or solid state drive 1623, tape and It may also include human accessible storage devices and their associated media, such as legacy magnetic media such as a floppy disk (not shown), special ROM/ASIC/PLD based devices such as security dongles (not shown), and the like.

본 기술 분야의 통상의 기술자는 또한 현재 개시된 주제와 관련하여 사용되는 바와 같은 "컴퓨터 판독 가능 매체"라는 용어가 전송 매체, 반송파 또는 다른 일시적인 신호를 포함하지 않는다는 것을 이해해야 한다.Those skilled in the art should also understand that the term "computer readable medium" as used in connection with the presently disclosed subject matter does not include transmission media, carrier waves, or other transitory signals.

컴퓨터 시스템(1600)은 하나 이상의 통신 네트워크에 대한 인터페이스를 또한 포함할 수 있다. 네트워크는, 예를 들어, 무선, 유선, 광학일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량용 및 산업용, 실시간, 지연 허용 등일 수 있다. 네트워크의 예는 이더넷, 무선 LAN과 같은 로컬 영역 네트워크, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량용 및 산업용 등을 포함한다. 특정 네트워크는 통상적으로 (예를 들어, 컴퓨터 시스템(1600)의 USB 포트와 같은) 특정 범용 데이터 포트 또는 주변 버스(1649)에 연결된 외부 네트워크 인터페이스 어댑터를 필요로 하며; 다른 네트워크는 통상적으로 아래에 기술된 바와 같이 시스템 버스에 연결되는 것에 의해 컴퓨터 시스템(1600)의 코어에 통합된다(예를 들어, 이더넷 인터페이스가 PC 컴퓨터 시스템에 통합되거나 셀룰러 네트워크 인터페이스가 스마트 폰 컴퓨터 시스템에 통합됨). 이러한 네트워크들 중 임의의 것을 사용하여, 컴퓨터 시스템(1600)은 다른 엔티티들과 통신할 수 있다. 그러한 통신은 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 송신 전용(예를 들어, CANbus로부터 특정 CANbus 디바이스들로) 또는 양방향(예를 들어, 로컬 영역 또는 광역 디지털 네트워크들을 사용하여 다른 컴퓨터 시스템들로)일 수 있다. 위에서 기술된 바와 같이 특정 프로토콜들 및 프로토콜 스택들은 해당 네트워크들 및 네트워크 인터페이스들 각각에서 사용될 수 있다.Computer system 1600 may also include interfaces to one or more communication networks. The network can be wireless, wired, optical, for example. Networks can also be local, wide area, metro, vehicular and industrial, real-time, delay tolerant, and the like. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., TV wired or wireless wide area digital networks including cable TV, satellite TV and terrestrial broadcast TV; Including automotive and industrial applications including CANBus. A specific network typically requires a specific universal data port (eg, a USB port of computer system 1600) or an external network interface adapter connected to peripheral bus 1649; Other networks are typically incorporated into the core of computer system 1600 by being connected to a system bus as described below (e.g., an Ethernet interface integrated into a PC computer system or a cellular network interface integrated into a smart phone computer system). incorporated into). Using any of these networks, computer system 1600 can communicate with other entities. Such communication may be one-way, receive only (eg, broadcast TV), one-way transmit only (eg, from CANbus to specific CANbus devices), or two-way (eg, using local area or wide area digital networks to another computer). systems). As described above, specific protocols and protocol stacks may be used in respective networks and network interfaces.

전술한 인간 인터페이스 디바이스들, 인간 액세스 가능 저장 디바이스들 및 네트워크 인터페이스들은 컴퓨터 시스템(1600)의 코어(1640)에 연결될 수 있다.The aforementioned human interface devices, human accessible storage devices and network interfaces may be coupled to core 1640 of computer system 1600 .

코어(1640)는 하나 이상의 중앙 프로세싱 유닛(CPU)(1641), 그래픽 프로세싱 유닛(GPU)(1642), FPGA(Field Programmable Gate Areas)(1643) 형태의 특수 프로그래밍 가능 프로세싱 유닛, 특정 태스크를 위한 하드웨어 가속기(1644) 등을 포함할 수 있다. 판독 전용 메모리(ROM)(1645), 랜덤 액세스 메모리(1646), 내부 비-사용자 액세스 가능 하드 드라이브, SSD 등과 같은 내부 대용량 스토리지(1647)와 함께, 이러한 디바이스들은 시스템 버스(1648)를 통해 연결될 수 있다. 일부 컴퓨터 시스템들에서, 시스템 버스(1648)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스 가능할 수 있다. 주변 디바이스들은 코어의 시스템 버스(1648)에 직접 연결되거나 주변 버스(1649)를 통해 연결될 수 있다. 주변 버스에 대한 아키텍처들은 PCI, USB 등을 포함한다.The core 1640 includes one or more central processing units (CPUs) 1641, graphics processing units (GPUs) 1642, specialized programmable processing units in the form of field programmable gate areas (FPGAs) 1643, and hardware for specific tasks. Accelerator 1644 and the like. Along with internal mass storage 1647 such as read-only memory (ROM) 1645, random access memory 1646, internal non-user accessible hard drives, SSDs, etc., these devices may be connected via system bus 1648. there is. In some computer systems, system bus 1648 may be accessible in the form of one or more physical plugs to enable expansion by additional CPUs, GPUs, and the like. Peripheral devices can be connected directly to the core's system bus 1648 or via a peripheral bus 1649 . Architectures for the peripheral bus include PCI, USB, etc.

CPU(1641), GPU(1642), FPGA(1643) 및 가속기(1644)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어들을 실행할 수 있다. 해당 컴퓨터 코드는 ROM(1645) 또는 RAM(1646)에 저장될 수 있다. 과도적인 데이터가 또한 RAM(1646)에 저장될 수 있는 반면, 영구 데이터는, 예를 들어, 내부 대용량 스토리지(1647)에 저장될 수 있다. 하나 이상의 CPU(1641), GPU(1642), 대용량 스토리지(1647), ROM(1645), RAM(1646) 등과 밀접하게 연관될 수 있는 캐시 메모리를 사용하여 메모리 디바이스들 중 임의의 것에 대한 빠른 저장 및 검색이 가능할 수 있다.CPU 1641 , GPU 1642 , FPGA 1643 , and accelerator 1644 may, in combination, execute specific instructions that may constitute the computer code described above. Corresponding computer code may be stored in ROM 1645 or RAM 1646. Transient data may also be stored in RAM 1646 while permanent data may be stored in internal mass storage 1647, for example. Fast storage and storage of any of the memory devices using cache memory, which may be closely associated with one or more of the CPU 1641, GPU 1642, mass storage 1647, ROM 1645, RAM 1646, etc. search may be possible.

컴퓨터 판독 가능 매체는 다양한 컴퓨터 구현 동작들을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 통상의 기술자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.A computer readable medium may have computer code for performing various computer implemented operations. The media and computer code may be specially designed and constructed for the purposes of this disclosure, or may be of the kind well known and available to those skilled in the art of computer software.

제한이 아닌 예로서, 아키텍처를 갖는 컴퓨터 시스템(1600), 특히 코어(1640)는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함함)가 하나 이상의 유형적인 컴퓨터 판독 가능 매체에 구현된 소프트웨어를 실행한 결과로서 기능을 제공할 수 있다. 그러한 컴퓨터 판독 가능 매체는 위에서 소개된 바와 같은 사용자 액세스 가능 대용량 스토리지는 물론, 코어 내부 대용량 스토리지(1647) 또는 ROM(1645)과 같은, 비일시적 성질을 갖는 코어(1640)의 특정 스토리지와 연관된 매체일 수 있다. 본 개시의 다양한 실시예들을 구현하는 소프트웨어는 그러한 디바이스들에 저장되고 코어(1640)에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는, 특정 요구에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(1640) 및 특히 그 내부의 프로세서들(CPU, GPU, FPGA 등을 포함함)이, RAM(1646)에 저장되는 데이터 구조들을 정의하는 것 및 소프트웨어에 의해 정의되는 프로세스들에 따라 그러한 데이터 구조들을 수정하는 것을 포함하여, 본 명세서에서 기술되는 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하게 할 수 있다. 추가적으로 또는 대안으로서, 컴퓨터 시스템은, 본 명세서에 기술된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하기 위해 소프트웨어 대신에 또는 소프트웨어와 함께 동작할 수 있는, 회로(예를 들어: 가속기(1644))에 고정 배선되거나 다른 방식으로 구현되는 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 언급은 로직을 포함할 수 있으며, 적절한 경우, 그 반대의 경우도 마찬가지이다. 컴퓨터 판독 가능 매체에 대한 언급은 실행을 위한 소프트웨어를 저장하는 회로(예컨대, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로, 또는, 적절한 경우, 둘 모두를 포함할 수 있다. 본 개시는 하드웨어와 소프트웨어의 임의의 적합한 조합을 포함한다.By way of example and not limitation, computer system 1600 having an architecture, particularly core 1640, is a processor(s) (including CPUs, GPUs, FPGAs, accelerators, etc.) implemented in one or more tangible computer readable media. It can provide functionality as a result of running the software. Such computer readable media may be media associated with specific storage of core 1640 having a non-transitory nature, such as core internal mass storage 1647 or ROM 1645, as well as user-accessible mass storage as introduced above. can Software implementing various embodiments of the present disclosure may be stored on such devices and executed by core 1640 . A computer readable medium may include one or more memory devices or chips, depending on the particular needs. Software is such that the core 1640 and in particular the processors therein (including CPU, GPU, FPGA, etc.) define the data structures stored in the RAM 1646 and the processes defined by the software. Including modifying data structures to cause execution of specific processes or specific portions of specific processes described herein. Additionally or alternatively, the computer system may include circuitry (e.g., accelerator 1644) that may operate in place of or in conjunction with software to carry out certain processes or particular portions of particular processes described herein. may provide functionality as a result of logic that is hardwired into or otherwise implemented. Any reference to software may include logic and vice versa where appropriate. Reference to a computer readable medium may include circuitry that stores software for execution (eg, an integrated circuit (IC)), circuitry that implements logic for execution, or, where appropriate, both. The present disclosure includes any suitable combination of hardware and software.

본 개시가 여러 예시적인 실시예들을 기술하였지만, 본 개시의 범위 내에 속하는 변경, 치환 및 다양한 대체 등가물이 있다. 따라서, 본 기술 분야의 통상의 기술자가, 본 명세서에서 명시적으로 도시되거나 기술되지는 않았지만, 본 개시의 원리들을 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템들 및 방법들을 고안할 수 있다는 것을 이해할 것이다.Although this disclosure has described several exemplary embodiments, there are alterations, substitutions, and various alternative equivalents that fall within the scope of this disclosure. It is therefore to be understood that those skilled in the art may devise numerous systems and methods that embody the principles of this disclosure and are therefore within its spirit and scope, although not explicitly shown or described herein. will be.

Claims (20)

클라우드 서비스를 위한 방법으로서,
클라우드 서비스를 위해 동작하는 프로세싱 회로에 의해, 적어도 변수와 연관된 제1 특성들을 포함하는 요청을 수신하는 단계 - 상기 제1 특성들은 상기 변수를 기술하고, 상기 요청은 적어도 이벤트와 연관된 제2 특성들을 더 포함하며, 상기 제2 특성들은 상기 이벤트를 기술하고, 상기 변수는 기능 변수 및 시스템 변수 중 하나이며, 상기 이벤트는 기능 이벤트 및 시스템 이벤트 중 하나임 -;
상기 프로세싱 회로에 의해, 상기 변수와 연관된 상기 제1 특성들, 상기 변수의 업데이트된 값 및 상기 이벤트의 발생을 표시하기 위한 상기 이벤트와 연관된 상기 제2 특성들을 포함하는 메시지를 생성하는 단계; 및
상기 프로세싱 회로에 의해, 상기 메시지를 수신자에게 송신하는 단계
를 포함하는 방법.
As a method for a cloud service,
Receiving, by processing circuitry operating for a cloud service, a request comprising at least first characteristics associated with a variable, the first characteristics describing the variable, the request further comprising at least second characteristics associated with an event. wherein the second characteristics describe the event, the variable is one of a function variable and a system variable, and the event is one of a function event and a system event;
generating, by the processing circuitry, a message comprising the first characteristics associated with the variable, the updated value of the variable, and the second characteristics associated with the event to indicate occurrence of the event; and
transmitting, by the processing circuitry, the message to a recipient;
How to include.
제1항에 있어서, 상기 제1 특성들은 상기 변수의 정의, 상기 변수의 단위, 상기 변수의 형식, 및 상기 변수의 범용 식별자 중 적어도 하나를 포함하는, 방법.The method of claim 1 , wherein the first characteristics include at least one of a definition of the variable, a unit of the variable, a type of the variable, and a universal identifier of the variable. 제1항에 있어서, 상기 프로세싱 회로는 상기 클라우드 서비스에 대한 작업 흐름을 확립하고 관리하도록 구성되는, 방법.The method of claim 1 , wherein the processing circuitry is configured to establish and manage workflows for the cloud service. 제1항에 있어서, 상기 프로세싱 회로는 상기 클라우드 서비스에 대한 작업 흐름 내의 하나 이상의 태스크를 수행하도록 구성되는, 방법.The method of claim 1 , wherein the processing circuitry is configured to perform one or more tasks within a workflow for the cloud service. 제1항에 있어서,
상기 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체, 이벤트들과 연관된 제1 이벤트들 디스크립터 객체, 및 보고 간격을 갖는 제1 보고 디스크립터 객체를 포함하고,
상기 메시지를 생성하는 단계는:
이전 메시지에 대해 보고 간격을 둔 시간에, 상기 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 상기 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 상기 메시지를 생성하는 단계
를 포함하는, 방법.
According to claim 1,
the request includes at least a first variables descriptor object associated with variables, a first events descriptor object associated with events, and a first report descriptor object having a reporting interval;
Generating the message is:
A second reporting descriptor object having a second variables descriptor object having updated values for the variables and a second events descriptor object associated with a subset of the events, at the time of the reporting interval for the previous message. generating the message to
Including, method.
제1항에 있어서,
상기 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 구독된 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 통지 디스크립터 객체를 포함하고, 상기 메시지를 생성하는 단계는:
상기 구독된 이벤트들 중 적어도 하나의 발생에 응답하여, 상기 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 상기 구독된 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 상기 메시지를 생성하는 단계
를 포함하는, 방법.
According to claim 1,
The request includes a first notification descriptor object having at least a first variables descriptor object associated with variables and a first events descriptor object associated with subscribed events, and generating the message comprises:
In response to the occurrence of at least one of the subscribed events, a second variables descriptor object having updated values for the variables and a second events descriptor object associated with the subset of subscribed events. Generating the message including a reporting descriptor object.
Including, method.
제1항에 있어서,
상기 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 모니터링 디스크립터 객체를 포함하고,
상기 방법은:
모니터링 엔티티로부터 송신되는 상기 요청을 수신하는 단계;
상기 요청에 응답하여, 상기 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 상기 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 상기 메시지를 생성하는 단계; 및
상기 메시지를 상기 모니터링 엔티티로 송신하는 단계
를 추가로 포함하는, 방법.
According to claim 1,
the request includes a first monitoring descriptor object having at least a first variables descriptor object associated with variables and a first events descriptor object associated with events;
The method is:
receiving the request sent from a monitoring entity;
In response to the request, generate the message comprising a second reporting descriptor object having a second variables descriptor object with updated values for the variables and a second events descriptor object associated with the subset of events. doing; and
sending the message to the monitoring entity;
Further comprising a, method.
제1항에 있어서, 상기 메시지는 상기 요청을 식별해 주는 요청 디스크립터 객체를 추가로 포함하는, 방법.2. The method of claim 1, wherein the message further comprises a request descriptor object identifying the request. 클라우드 서비스를 제공하기 위한 클라우드 내의 장치로서,
제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 구성된 프로세싱 회로
를 포함하는, 장치.
As a device in the cloud for providing cloud services,
A processing circuit configured to perform the method of any one of claims 1 to 8.
Including, device.
명령어들이 저장된 컴퓨터 판독가능 매체로서, 상기 명령어들은, 클라우드 서비스를 위한 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 야기하는 컴퓨터 판독가능 매체.
A computer readable medium having stored thereon instructions, which when executed by a computer for a cloud service causes the computer to perform the method of any one of claims 1 to 8.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020217024857A 2019-09-27 2020-09-24 Method and Apparatus for Cloud Service KR102565776B1 (en)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201962907322P 2019-09-27 2019-09-27
US201962907327P 2019-09-27 2019-09-27
US201962907312P 2019-09-27 2019-09-27
US62/907,312 2019-09-27
US62/907,327 2019-09-27
US62/907,322 2019-09-27
US17/029,968 US11500687B2 (en) 2019-09-27 2020-09-23 Method and apparatus for cloud service
US17/029,968 2020-09-23
PCT/US2020/052431 WO2021061939A1 (en) 2019-09-27 2020-09-24 Method and apparatus for cloud service

Publications (2)

Publication Number Publication Date
KR20210110701A KR20210110701A (en) 2021-09-08
KR102565776B1 true KR102565776B1 (en) 2023-08-11

Family

ID=75162068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024857A KR102565776B1 (en) 2019-09-27 2020-09-24 Method and Apparatus for Cloud Service

Country Status (6)

Country Link
US (2) US11500687B2 (en)
EP (1) EP4035317A4 (en)
JP (1) JP7285945B2 (en)
KR (1) KR102565776B1 (en)
CN (1) CN114128236B (en)
WO (1) WO2021061939A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4272452A2 (en) * 2021-01-04 2023-11-08 Nokia Technologies Oy Flexible upstream/downstream support for network-based media processing pipelines
US20230008616A1 (en) * 2021-07-06 2023-01-12 Tencent America LLC Method and system for monitoring, reporting and notification of cloud platform system variables and events

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862736B2 (en) 1998-02-06 2005-03-01 Microsoft Corporation Object manager for common information model
US8990214B2 (en) * 2001-06-27 2015-03-24 Verizon Patent And Licensing Inc. Method and system for providing distributed editing and storage of digital media over a network
US7941448B2 (en) 2005-08-26 2011-05-10 At&T Intellectual Property Ii, Lp System and method for event driven publish-subscribe communications
US7496893B2 (en) 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
KR101438484B1 (en) * 2010-10-07 2014-11-04 주식회사 에스에스디 Blank Touch manufacturing method
US8380845B2 (en) * 2010-10-08 2013-02-19 Microsoft Corporation Providing a monitoring service in a cloud-based computing environment
US8285808B1 (en) * 2011-05-20 2012-10-09 Cloudflare, Inc. Loading of web resources
CN102780766B (en) * 2012-06-27 2014-10-08 浙江大学 Design service resource cross-domain construction method for cloud manufacturing
US10419524B2 (en) * 2012-09-07 2019-09-17 Oracle International Corporation System and method for workflow orchestration for use with a cloud computing environment
CN104956629B (en) * 2013-12-30 2018-06-05 华为技术有限公司 Event distributing method in software defined network, control device and processor
US9438491B1 (en) * 2014-03-11 2016-09-06 Apteligent, Inc. Service monitor for monitoring a network connection to track the performance of an application running on different mobile devices
US9882836B2 (en) * 2014-06-03 2018-01-30 International Business Machines Corporation Adjusting cloud resource allocation
US10489213B2 (en) * 2014-10-01 2019-11-26 Red Hat, Inc. Execution of a method at a cluster of nodes
CA2988805C (en) * 2015-06-26 2023-09-05 Amazon Technologies, Inc. Datastore for aggregated measurements for metrics
CN111164573A (en) * 2017-10-06 2020-05-15 康维达无线有限责任公司 Fog service layer starting and application to intelligent transportation system

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
미국공개특허 제2005-0193109호(2005.09.01.) 1부.*
미국공개특허 제2007-0294668호(2007.12.20.) 1부.*
미국공개특허 제2012-0036219호(2012.02.09.) 1부.*
일본공개특허 제2019-145129호(2019.08.29.) 1부.*
일본공표특허 제2018-522336호(2018.08.09.) 1부.*

Also Published As

Publication number Publication date
US11861411B2 (en) 2024-01-02
JP7285945B2 (en) 2023-06-02
WO2021061939A1 (en) 2021-04-01
CN114128236B (en) 2023-05-23
KR20210110701A (en) 2021-09-08
US20210096925A1 (en) 2021-04-01
JP2022522839A (en) 2022-04-20
EP4035317A1 (en) 2022-08-03
US11500687B2 (en) 2022-11-15
EP4035317A4 (en) 2023-09-13
CN114128236A (en) 2022-03-01
US20230004446A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
US11861411B2 (en) Variable and event reporting in a cloud service system
US20230006946A1 (en) First-in first-out function for segmented data stream processing
US11516628B2 (en) Media streaming with edge computing
CN113826367B (en) Resource estimation method and device for realizing processing function and electronic equipment
KR102516231B1 (en) Graphic representation and description of configuration parameters for media processing functions in network-based media processing (NBMP)
US11734016B2 (en) Method and apparatus for stateless parallel processing of tasks and workflows
CN113795822B (en) Method, apparatus, computer system and storage medium for processing workflow
US11593150B2 (en) Method and apparatus for cloud service

Legal Events

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