KR102565776B1 - 클라우드 서비스를 위한 방법 및 장치 - Google Patents

클라우드 서비스를 위한 방법 및 장치 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
English (en)
Other versions
KR20210110701A (ko
Inventor
이라즈 소다가르
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20210110701A publication Critical patent/KR20210110701A/ko
Application granted granted Critical
Publication of KR102565776B1 publication Critical patent/KR102565776B1/ko

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 특성들 및 변수의 업데이트된 값을 포함하는 메시지를 생성하고 메시지를 수신자에게 송신한다.

Description

클라우드 서비스를 위한 방법 및 장치
참조에 의한 포함
본 출원은 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호에 대한 우선권의 이익을 주장한다. 선행 출원의 전체 개시는 이로써 그 전체가 참고로 포함된다.
기술 분야
본 개시는 일반적으로 클라우드 서비스에 관련된 실시예들을 기술한다.
본 명세서에서 제공되는 배경기술 설명은 본 개시의 맥락을 일반적으로 제시하기 위한 것이다. 현재 기명된 발명자들의 연구가 이 배경기술 섹션에 기술되어 있는 한, 이 연구는 물론, 출원 당시에 선행 기술로서 달리 자격이 없을 수 있는 설명의 양태들은 명시적으로든 암시적으로든 본 개시에 대한 선행 기술로서 인정되지 않는다.
다양한 미디어 애플리케이션 및 서비스는 상당한 프로세싱 능력을 필요로 한다. 일부 예에서, 그렇지 않았으면 클라이언트 디바이스에서 수행되었을 작업 부하가 원격 서버로 오프로드될 수 있는 경우 클라우드 프로세싱이 선호된다. 원격 서버가 훨씬 더 높은 계산 용량을 가지기 때문에, 복잡한 미디어 프로세싱 태스크가 원격 서버에 의해 수행될 수 있고, 이어서 최종 결과 또는 거의 최종 결과가 클라이언트 디바이스로 송신될 수 있다.
본 개시의 양태는 클라우드 서비스를 위한 방법 및 장치를 제공한다. 예를 들어, 클라우드 서비스를 제공하기 위한 클라우드 내의 장치는 프로세싱 회로를 포함한다. 프로세싱 회로는 적어도 변수와 연관된 제1 특성들을 포함하는 요청을 수신한다. 일 예에서, 제1 특성들은 변수를 기술하기 위한 완전한 정보를 포함한다. 프로세싱 회로는 변수와 연관된 제1 특성들 및 변수의 업데이트된 값을 포함하는 메시지를 생성하고 메시지를 수신자에게 송신한다.
일 예에서, 제1 특성들은 적어도 변수의 정의, 변수의 단위, 변수의 형식, 및 변수의 범용 식별자를 포함한다.
일부 예에서, 프로세싱 회로는 클라우드 서비스에 대한 작업 흐름을 확립하고 관리할 수 있다. 일부 다른 예에서, 프로세싱 회로는 클라우드 서비스에 대한 작업 흐름에서 하나 이상의 태스크를 수행할 수 있다.
일부 실시예에서, 요청은 적어도 이벤트와 연관된 제2 특성들을 포함한다. 제2 특성들은 이벤트를 기술하기 위한 완전한 정보를 포함한다. 프로세싱 회로는 변수와 연관된 제1 특성들과 변수의 업데이트된 값, 및 이벤트의 발생을 표시하기 위한 이벤트와 연관된 제2 특성들을 포함하는 메시지를 생성할 수 있다. 변수가 기능 변수 또는 시스템 변수일 수 있고 이벤트가 기능 이벤트 또는 시스템 이벤트일 수 있음에 유의한다.
일부 실시예에서, 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체, 이벤트들과 연관된 제1 이벤트들 디스크립터 객체, 및 보고 간격을 갖는 제1 보고 디스크립터 객체를 포함한다. 프로세싱 회로는, 이전 메시지에 대해 보고 간격을 둔 시간에, 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 메시지를 생성한다.
일부 실시예에서, 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 구독된 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 통지 디스크립터 객체를 포함한다. 프로세싱 회로는, 구독된 이벤트들 중 적어도 하나의 발생에 응답하여, 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 구독된 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 메시지를 생성한다.
일부 실시예에서, 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 모니터링 디스크립터 객체를 포함한다. 프로세싱 회로는 모니터링 엔티티로부터 송신되는 요청을 수신하고, 요청에 응답하여, 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 메시지를 생성한다. 이어서, 프로세싱 회로는 메시지를 모니터링 엔티티로 송신한다.
일부 실시예에서, 메시지가 요청을 식별해 주는 요청 디스크립터 객체를 포함한다는 점에 유의한다.
본 개시의 양태는 또한 클라우드 서비스를 위한 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 클라우드 서비스를 위한 방법을 수행하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독 가능 매체를 제공한다.
개시된 주제의 추가 특징, 본질 및 다양한 장점은 이하의 상세한 설명 및 첨부 도면으로부터 더 명백해질 것이다.
도 1은 본 개시의 실시예에 따른 예시적인 미디어 프로세싱 시스템을 도시한다.
도 2는 본 개시의 실시예에 따른 그래프의 예를 도시한다.
도 3은 본 개시의 일부 실시예에 따른 기능에서의 변수들의 목록을 도시한다.
도 4는 본 개시의 일부 실시예에 따른 변수에 대한 특성들의 테이블을 도시한다.
도 5는 본 개시의 일부 실시예에 따른 변수들 디스크립터 스키마의 예를 도시한다.
도 6은 본 개시의 일부 실시예에 따른 기능에서의 이벤트들의 목록을 도시한다.
도 7은 본 개시의 일부 실시예에 따른 이벤트에 대한 특성들의 테이블을 도시한다.
도 8은 본 개시의 일부 실시예에 따른 이벤트들 디스크립터 스키마의 예를 도시한다.
도 9는 보고 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시한다.
도 10은 본 개시의 일부 실시예에 따른 보고 디스크립터 스키마의 예를 도시한다.
도 11은 통지 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시한다.
도 12a 및 도 12b는 본 개시의 일부 실시예에 따른 통지 디스크립터 스키마의 예를 도시한다.
도 13은 모니터링 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시한다.
도 14는 본 개시의 일부 실시예에 따른 모니터링 디스크립터 스키마의 예를 도시한다.
도 15는 본 개시의 실시예에 따른 프로세스를 개략적으로 나타내는 플로차트를 도시한다.
도 16은 실시예에 따른 컴퓨터 시스템의 개략적 예시이다.
클라우드 컴퓨팅이란 정보 컴퓨팅 서비스(예를 들면, 클라우드 서비스)를 전달하기 위해 네트워크(예를 들면, 인터넷)에서 호스팅되는 원격 서버들의 네트워크를 사용하는 관행을 지칭한다. 클라우드 서비스들을 서비스 소비자들(예를 들면, 클라이언트들)에게 제공하는 데 이용되는 네트워크 아키텍처(예를 들면, 하드웨어 및 소프트웨어를 포함함)는 클라우드라고 지칭된다. 클라우드 컴퓨팅은, 데이터 프로세싱, 미디어 프로세싱, 서버, 스토리지, 네트워크, 애플리케이션, 온라인 서비스 등과 같은, 광범위한 서비스에 대한 액세스를 제공한다. 일부 예에서, 미디어 프로세싱은 계산 집약적으로 되며, 따라서 미디어 프로세싱 클라우드는 상당한 작업 부하를 원격 서버로 오프로드하는 데 선호된다.
일반적으로, 클라우드 컴퓨팅 시스템은 네트워크, 하나 이상의 서버 및 하나 이상의 클라이언트 디바이스를 포함한다. 네트워크는 서버와 클라이언트 디바이스 간의 통신을 용이하게 한다. 클라이언트 디바이스는, 예를 들어, 스마트 폰, 태블릿 컴퓨터, 랩톱, 개인용 컴퓨터, 웨어러블 디바이스, 헤드 마운티드 디스플레이(HMD) 등일 수 있다. 서버는 하나 이상의 클라이언트 디바이스에 컴퓨팅 서비스를 제공할 수 있는 임의의 적합한 컴퓨팅 또는 프로세싱 디바이스를 포함할 수 있다. 예를 들어, 각각의 서버는 하나 이상의 프로세싱 디바이스, 명령어들 및 데이터를 저장하는 하나 이상의 메모리, 및 네트워크를 통한 통신을 용이하게 하는 하나 이상의 네트워크 인터페이스를 포함할 수 있다. 일부 실시예에서, 서버는 프로세싱 태스크를 수행하기 위해 기능을 선택하고 작업 흐름 파이프라인을 구축할 수 있는 작업 흐름 관리자를 포함한다.
본 개시의 일부 실시예에 따르면, 계산이 원격 서버로 오프로드될 때, 클라이언트 디바이스 또는 서비스를 제공하는 것을 책임지고 있는 서비스 제공자는 서비스의 프로세싱 상태에 관한 정보, 예컨대, 서비스의 실시간 정보 등을 필요로 할 수 있다. 일부 예에서, 클라우드 서비스에 관여된 엔티티에 상태 정보를 제공하기 위해 클라우드 컴퓨팅 시스템에서 액션이 취해질 수 있다. 예에서, 보고는 서비스의 수행 동안 이벤트 및 변수에 대한 정보를 목적지에 제공하기 위해 정기적으로 수행되는(예를 들면, 시간 간격에 기초하여 자주 수행되는) 액션이다. 다른 예에서, 통지는 이벤트가 발생할 때 정보를 목적지에 제공하는 액션이다. 다른 예에서, 모니터링은 엔티티가 정보를 요청하고 요청된 정보를 수신하는 액션이다. 설명의 용이성을 위해, 이하의 설명에서, 액션(예를 들면, 보고, 통지 및 모니터링)에 응답하여 생성되는 상태 정보는 상태 보고서라고 지칭되고; 보고 액션에 응답하여 생성되는 상태 정보는 정기 보고서라고 지칭되며; 통지 액션에 응답하여 생성되는 상태 정보는 통지 보고서라고 지칭되고; 모니터링 액션에 응답하여 생성되는 상태 정보는 모니터링 보고서라고 지칭된다.
본 개시의 양태는 클라우드 컴퓨팅 시스템에서 보고, 모니터링 및 통지를 위한 프레임워크를 제공한다. 프레임워크는 보고, 모니터링 및 통지 액션들의 셋업 및 프로세싱을 단순화할 수 있다. 구체적으로, 본 개시의 일부 양태는 클라우드 컴퓨팅 서비스를 위한 자기 완비적(self-contained) 보고, 모니터링 및 통지 프레임워크를 제공한다. 자기 완비적 프레임워크는 수신자가 이해하도록 컨테이너에 모든 필요한 정보를 포함시키는 컨테이너(예를 들면, 메시지)를 수신자에게 제공할 수 있으며, 따라서 수신자는 수신된 정보를 이해하기 위해 컨테이너 외부의 정보를 상호 참조하는 것을 필요로 하지 않는다.
본 개시에서, 네트워크 기반 미디어 프로세싱(network-based media processing, NBMP)을 수행하는 미디어 프로세싱 시스템(일부 예에서는 미디어 프로세싱 클라우드라고도 지칭됨)이 보고, 모니터링 및 통지 프레임워크들을 예시하기 위해 예로서 사용되고, 보고, 모니터링 및 통지 프레임워크들이 다른 적합한 클라우드 컴퓨팅 시스템에서 사용될 수 있다는 점에 유의한다.
미디어 프로세싱 시스템에서, NBMP 소스는 요청된 미디어 프로세싱을 기술하고 미디어 데이터의 성질과 형식에 관한 정보를 제공한다. 그에 따라, NBMP 작업 흐름 관리자는 미디어 프로세싱 작업 흐름을 확립하고 작업 흐름이 준비되었음을 NBMP 소스에 통보하며, 이어서 미디어 프로세싱이 시작될 수 있다. 예를 들어, 미디어 소스(들)는 이어서 프로세싱을 위해 미디어를 네트워크로 전송하기 시작할 수 있다.
일부 실시예에서, NBMP 작업 흐름은 미디어 프로세싱 태스크들 간의 입력/출력 관계에 기초하여 연결되는 미디어 프로세싱 태스크들을 포함한다. 미디어 프로세싱 태스크들 각각은, 비디오 디코딩, 비디오 스티칭, 비디오 인코딩 등과 같은, 미디어 프로세싱 동작을 수행한다. 일 예에서, 제1 미디어 프로세싱 태스크는 입력에 기초하여 미디어 프로세싱 동작을 수행하고 출력을 생성한다. 제1 미디어 프로세싱 태스크의 출력은 제1 미디어 프로세싱 태스크와 연결되는 제2 미디어 프로세싱 태스크에 대한 입력으로서 사용될 수 있다. 환언하면, NBMP 작업 흐름은 미디어 프로세싱 태스크들의 연결 그래프(connected graph)로 간주할 수 있다.
작업 흐름 관리자는 각각의 태스크는 물론 작업 흐름 출력을 구성하고 모니터링하는 것에 의해 작업 흐름의 올바른 동작을 보장할 수 있다. 일부 예에서, 작업 흐름 관리자는 미디어 프로세싱 기능들을 선택하고 NBMP 소스로부터 수신되는 작업 흐름 설명에 기초하여 미디어 프로세싱 기능들을 태스크들로서 인스턴스화하도록 구성된다.
미디어 프로세싱 시스템에서는, 미디어 프로세싱 태스크를 실행할 미디어 프로세싱 엔티티들을 확립, 로딩, 인스턴스화 및 모니터링하기 위해 적합한 상호작용들이 수행될 수 있다. 일부 예에서, NBMP 소스와 작업 흐름 관리자 사이에; 작업 흐름 관리자와 태스크(들) 사이에 애플리케이션 프로그래밍 인터페이스들(API들)이 정의될 수 있고; API가 적절한 기능(들)을 발견하도록 정의된다. 일부 예에서, 미디어 프로세싱 시스템은 미디어 형식 및 프로토콜에 무관(agnostic)하도록 구성된다. 미디어 프로세싱 시스템은 미디어 소스, 작업 흐름 관리자 및 태스크 간에 교환되는 데이터에 대한 미디어, 메타데이터 및 보조 정보 형식들을 식별하고 시그널링할 수 있다.
일부 예에서, 미디어 프로세싱을 위해 디지털 네트워크들을 통해 연결되는 엔티티들 사이의 데이터 형식들 및 애플리케이션 프로그래밍 인터페이스들(API들) 둘 모두를 포함하는 인터페이스들이 정의될 수 있다. 사용자들은 효율적이고 지능적인 프로세싱을 위해 원격으로 사용자 동작들에 액세스하여 이를 구성할 수 있다. 미디어 데이터에 적용될 작업 흐름들이 기술되고 관리될 수 있다. 미디어 데이터가 네트워크에 업로드될 수 있고, 미디어 프로세싱 태스크들이 인스턴스화되고 구성될 수 있다. 일부 실시예에서, 미디어 프로세싱 파이프라인들의 동적 생성은 물론 프로세싱된 미디어 데이터 및 메타데이터에 대한 실시간 또는 지연된 방식의 액세스가 가능하다. 미디어 프로세싱 파이프라인에서 미디어 소스, 작업 흐름 관리자 및 미디어 프로세싱 엔티티들 간에 사용되는 미디어 및 메타데이터 형식들이 또한 명시된다.
일 예에서, 클라이언트들(예를 들면, 디지털 미디어의 제작자들, 서비스 제공자들 및 소비자들)은 네트워크에서 미디어 프로세싱 엔티티들에 의해 수행될 미디어 프로세싱 동작들을 기술할 수 있다. 작업 흐름은 인터페이스들(예를 들면, NBMP API들)을 통해 액세스 가능한 미디어 프로세싱 기능들의 세트를 구성하는 것에 의해 기술될 수 있다. 미디어 프로세싱 엔티티(MPE)는 미디어에 적용되는 프로세싱 태스크들 및 미디어 소스(들) 또는 다른 태스크로부터 수신되는 관련 메타데이터를 실행할 수 있다. MPE는 프로세싱 태스크를 구성, 관리 및 모니터링하기 위한 능력을 제공할 수 있다. 미디어 프로세싱 태스크는 미디어 및 메타데이터 입력(들)에 적용되어, 미디어 싱크 또는 다른 미디어 프로세싱 태스크에 의해 소비될 데이터 및 관련 메타데이터 출력(들)을 생성하는 프로세스일 수 있다.
미디어 프로세싱 시스템은 스트리밍, 파일 전달, 푸시 기반 점진적 다운로드, 하이브리드 전달, 다중 경로 및 이종 네트워크 환경과 같은 다양한 전달 방법들을 지원할 수 있다.
도 1은 본 개시의 실시예에 따른 예시적인 미디어 프로세싱 시스템(예를 들면, NBMP 시스템, NBMP 참조 아키텍처, NBMP 아키텍처)(100)을 도시한다. 미디어 프로세싱 시스템(100)은, NBMP 소스(101), 작업 흐름 관리자(예를 들면, NBMP 작업 흐름 관리자)(103), 기능 리포지토리(105), 미디어 소스(111), 미디어 프로세싱 엔티티(MPE)(113), 미디어 싱크(115), 제3자 엔티티 등과 같은, 복수의 엔티티를 포함할 수 있다. 미디어 프로세싱 시스템(100)은 추가적인 미디어 소스(들), 미디어 싱크(들), 및/또는 미디어 프로세싱 엔티티를 포함할 수 있다. 미디어 프로세싱 시스템(100)은 네트워크 내의 하나 이상의 프로세싱 엔티티에 걸쳐 미디어 데이터를 프로세싱할 수 있다. 다양한 미디어 및 미디어에 대한 제어 정보(또는 제어 데이터)와 같은 정보가 미디어 프로세싱 시스템(100) 내의 복수의 엔티티들 간에 통신될 수 있다.
논의를 위한 맥락을 제공하기 위해, 미디어 프로세싱 시스템(100)은 아래에서 NBMP 시스템(100)으로서 기술된다. 이 설명들은 임의의 미디어 프로세싱 시스템에 적합하게 적응될 수 있다.
NBMP 소스(101)는 네트워크에서의 미디어 프로세싱을 기술하거나 다른 방식으로 나타낼 수 있다. 기능 리포지토리(105)는 다양한 NBMP 기능의 NBMP 기능 설명들을 포함할 수 있다. NBMP 소스(101) 및 작업 흐름 관리자(103)는 기능 리포지토리(105)로부터 NBMP 기능 설명들 또는 기능들을 검색할 수 있다. NBMP 기능은 독립형 및 자기 완비적 미디어 프로세싱 동작의 구현 및/또는 동작의 대응하는 설명을 지칭할 수 있다.
프로세싱 태스크 또는 태스크는 MPE(113)에 의해 실행되는 NBMP 기능의 런타임 인스턴스를 지칭할 수 있다. NBMP 작업 흐름 또는 작업 흐름은 요청된 미디어 프로세싱을 달성하는 하나 이상의 연결된 태스크(들)의 그래프(예를 들면, 유향 비순환 그래프(directed acyclic graph, DAG))에 의해 표현될 수 있다. 작업 흐름 관리자(103)는, 예를 들어, 작업 흐름 설명 문서(workflow description document, WDD)에 기초하여, 작업 흐름을 생성, 제어, 관리 및 모니터링하기 위한 태스크(들)를 프로비저닝하고 태스크(들)를 연결시킬 수 있다.
미디어 소스(111)는 작업 흐름에 의해 프로세싱될 미디어 콘텐츠(예를 들면, 미디어 데이터, 보충 정보)를 제공할 수 있다. 보충 정보는 미디어 데이터에 관련된 메타데이터 또는 보조 정보를 포함할 수 있다. 미디어 소스(111)는 작업 흐름에 입력을 제공할 수 있다. 미디어 싱크(115)는 작업 흐름의 출력을 소비할 수 있다. MPE(113)는 미디어 콘텐츠를 프로세싱하기 위해 하나 이상의 미디어 프로세싱 태스크(들)를 실행할 수 있다.
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) 사이의 인터페이스를 제공할 수 있다.
위에서 기술된 NBMP 인터페이스들은 네트워크에서의 미디어 프로세싱 작업 흐름들을 생성하고 제어하는 데 사용될 수 있다. NBMP 시스템(100)은 제어 평면과 미디어 평면(또는 미디어 데이터 평면)으로 분할될 수 있다. 제어 평면은 작업 흐름 API, 기능 발견 API 및 태스크 API를 포함할 수 있다.
작업 흐름 API는 미디어 프로세싱 작업 흐름을 생성하고 제어하기 위해 NBMP 소스(101)에 의해 사용될 수 있다. NBMP 소스(101)는 네트워크에서의 미디어 프로세싱을 구성하고 제어하기 위해 작업 흐름 관리자(103)와 통신하기 위해 작업 흐름 API를 사용할 수 있다. NBMP 소스(101)가 작업 흐름 API의 동작에 작업 흐름 리소스(WR)를 포함시키는 것에 의해 요청을 작업 흐름 관리자(103)로 송신할 때, 작업 흐름 관리자(103)는 WR, 포함된 WDD 및 대응하는 디스크립터를 파싱하고, 요청된 동작에 따라 적절한 액션들을 취할수 있다. 이어서, 작업 흐름 관리자(103)는 응답으로 요청을 확인응답할 수 있다. 작업 흐름 API 동작들은 작업 흐름을 생성하는 것(예를 들면, CreateWorkflow), 작업 흐름을 업데이트하는 것(예를 들면, UpdateWorkflow), 작업 흐름을 삭제하는 것(예를 들면, DeleteWorkflow), 작업 흐름을 검색하는 것(예를 들면, RetrieveWorkflow) 등을 포함할 수 있다.
기능 발견 API는 작업 흐름 관리자(103) 및/또는 NBMP 소스(101)가 미디어 프로세싱 작업 흐름의 일부로서 로딩될 수 있는 미디어 프로세싱 기능들을 발견하기 위한 수단을 제공할 수 있다.
태스크 API는 런타임에서 태스크(들)(예를 들면, MPE(113)에 의해 실행되는 태스크 1 및 태스크 2)를 구성하고 모니터링하기 위해 작업 흐름 관리자(103)에 의해 사용될 수 있다. 태스크 API는, 예를 들어, 태스크에 대한 리소스들이 MPE(113)에 할당된 후에, 작업 흐름 관리자(103)에 의한 미디어 프로세싱 태스크들의 구성을 위한 인터페이스(들)를 정의할 수 있다. 태스크 API 동작들은 태스크를 생성하는 것(예를 들면, CreateTask), 태스크를 업데이트하는 것(예를 들면, UpdateTask), 태스크를 가져오는 것(예를 들면, GetTask), 태스크를 삭제하는 것(예를 들면, DeleteTask) 등을 포함할 수 있다.
미디어 평면에서, NBMP 소스(111)와 태스크(들) 사이는 물론 태스크들 사이의 미디어 형식, 메타데이터 및 보충 정보 형식들이 정의될 수 있다.
작업 흐름 설명(WD)은 NBMP 소스(101)로부터 작업 흐름 관리자(103)로 전달될 수 있다. WD는 작업 흐름에 대한 입력 데이터 및 출력 데이터, 기능들 및 다른 요구사항들과 같은 정보를 기술할 수 있다.
작업 흐름 관리자(103)는 NBMP 소스(101)로부터 WDD를 수신할 수 있고 요청된 미디어 프로세싱을 위한 작업 흐름을 구축할 수 있다. 작업 흐름 절차에서, 미디어 프로세싱 기능들이, 예를 들어, 기능 리포지토리(105)로부터 선택될 수 있으며, 이어서 대응하는 미디어 프로세싱 태스크들이 구성되고 하나 이상의 MPE의 세트(예를 들면, MPE(113)를 포함함)에 분배될 수 있다.
기능 리포지토리(105)에 의해 제공되는 기능들의 세트는 NBMP 소스(101) 및 작업 흐름 관리자(103)에 의해 판독될 수 있다. 일 실시예에서, NBMP 소스(101)는 기능 리포지토리(105)에 있는 기능들의 세트를 사용하여 작업 흐름을 생성하는 것을 요청한다. 그에 따라, NBMP 소스(101)는 작업 흐름에 대한 기능들을 선택하도록 구성된다. NBMP 소스(101)는 아래에서 기술되는 바와 같이 작업 흐름의 생성을 요청할 수 있다. NBMP 소스(101)는 작업 흐름을 생성하는 데 이용되는 미디어 프로세싱 태스크들의 설명을 사용할 수 있으며, 미디어 프로세싱 태스크들의 입력들과 출력들의 연결을 정의하기 위한 연결 맵을 명시할 수 있다. 작업 흐름 관리자(103)가 NBMP 소스(101)로부터 상기 정보를 수신할 때, 작업 흐름 관리자(103)는 각자의 기능 이름들에 기초하여 미디어 프로세싱 태스크들을 인스턴스화할 수 있고 연결 맵에 따라 미디어 프로세싱 태스크들을 연결시킬 수 있다.
대안적으로, NBMP 소스(101)는 작업 흐름 관리자(103)가 작업 흐름을 구성하는 데 이용할 수 있는 키워드들의 세트를 사용하여 작업 흐름의 생성을 요청할 수 있다. 그에 따라, NBMP 소스(101)는 작업 흐름에 삽입될 기능들의 세트를 인식하지 못할 수 있다. NBMP 소스(101)는 아래에서 기술되는 바와 같이 작업 흐름의 생성을 요청할 수 있다. NBMP 소스(101)는 작업 흐름 관리자(103)가 적절한 기능들을 찾는 데 이용할 수 있는 키워드들의 세트를 사용할 수 있으며 적합한 작업 흐름 설명을 사용하여 작업 흐름의 요구사항들을 명시할 수 있다.
작업 흐름 관리자(103)가 NBMP 소스(101)로부터 상기 정보(예를 들면, 키워드들의 세트)를 수신할 때, 작업 흐름 관리자(103)는, 예를 들어, 프로세싱 디스크립터에 명시된 키워드들을 사용하여 적절한 기능들을 탐색하는 것에 의해 작업 흐름을 생성할 수 있다. 이어서 작업 흐름 관리자(103)는 미디어 프로세싱 태스크들을 프로비저닝하고 미디어 프로세싱 태스크들을 연결시켜 최종 작업 흐름을 생성하기 위해 작업 흐름 설명 내의 다른 디스크립터들을 사용할 수 있다.
작업 흐름 관리자(103)의 프로세싱 모델은 아래와 같이 기술될 수 있다.
작업 흐름 관리자(103)는 아래와 같이 이용 가능한 미디어 프로세싱 기능들을 발견할 수 있다. NBMP 기능 리포지토리(105)는 요청된 프로세싱을 수행할 수 있는 미디어 프로세싱 기능에 대해 외부 엔티티가 질의할 수 있게 하기 위한 기능 발견 인터페이스(또는 API)를 제공할 수 있다. 작업 흐름 관리자(103)는 탐색 가능한 미디어 프로세싱 기능들의 목록을 제공하는 디렉토리 서비스에 액세스할 수 있다. 작업 흐름 관리자(103)는 작업 흐름에 대한 적절한 기능들을 찾기 위해 작업 흐름 설명 내의 미디어 프로세싱 태스크들의 설명을 사용할 수 있다.
작업 흐름에 대한 미디어 프로세싱 태스크들의 선택은 아래에서 기술될 수 있다. 미디어 프로세싱에 대한 요청이 NBMP 소스(101)로부터 수신될 때, 작업 흐름 관리자(103)는 작업 흐름을 수행할 수 있는 모든 이용 가능한 기능들의 목록을 찾기 위해 기능 리포지토리(105)를 탐색할 수 있다. NBMP 소스(101)로부터의 작업 흐름 설명을 사용하여, 작업 흐름 관리자(103)는, NBMP 소스(101)로부터의 미디어 프로세싱을 위한 정보에 의존할 수 있는, 작업 흐름을 구현할 기능들을 기능 리포지토리(105)로부터 찾을 수 있다. 미디어 프로세싱에 대한 정보는 입력 및 출력 설명, 요청된 프로세싱의 설명, 및 기능 디렉토리(105)에 있는 기능들에 대한 다른 디스크립터들 내의 정보를 포함할 수 있다. 작업 흐름에 포함될 적절한 미디어 프로세싱 태스크들에 소스 요청들을 매핑하는 것은 네트워크에서의 NBMP의 구현의 일부일 수 있다. 태스크 생성 시에 입력 포트 이름들 및 출력 포트 이름들로 입력 소스들을 참조하고 링크시키기 위해, 입력 포트들 및 출력 포트들이 입력 스트림들을 참조하는 데 사용될 수 있다.
태스크들로서 인스턴스화될 적절한 기능들에 대한 탐색은 기능 발견 API를 사용하여 작업 흐름 관리자(103)에 의해 수행될 수 있다. 대안적으로, 작업 흐름 관리자(103)는 기능 발견 API를 사용하여 기능 리포지토리(105)에서 일부 또는 모든 적합한 기능들의 상세 정보를 검색할 수 있다. 작업 흐름 관리자(103)는 이어서 NBMP 소스(101)로부터의 미디어 프로세싱에 대한 정보를 각각의 기능의 상이한 디스크립터들과 비교할 수 있다.
선택된 미디어 프로세싱 태스크들이 작업 흐름에 구성될 수 있다. 작업 흐름에 포함될 기능들이 식별될 때, NBMP 작업 흐름 관리자(103)는 해당 기능들을 각자의 태스크들로서 인스턴스화하고 태스크들이 작업 흐름에 추가될 수 있도록 태스크들을 구성할 수 있다. NBMP 작업 흐름 관리자(103)는 NBMP 소스(101)로부터 수신되는 미디어 프로세싱 정보로부터 구성 데이터를 추출하고 대응하는 태스크들을 구성할 수 있다. 태스크들의 구성은 태스크 API(예를 들면, NBMP 태스크 API)를 사용하여 수행될 수 있다.
태스크 할당 및 분배는 아래에서 기술될 수 있다. 작업 흐름 관리자(103)는 프로세싱 배포를 수행하고 미디어 프로세싱 엔티티들을 구성하기 위해 작업 흐름을 사용할 수 있다. 일 예에서, 계산 집약적인 미디어 프로세싱 요청들의 경우, 작업 흐름 관리자(103)는 다수의 계산 인스턴스들을 셋업하고 다수의 계산 인스턴스들 간에 작업 부하를 분배할 수 있다. 따라서, 작업 흐름 관리자(103)는 필요에 따라 다수의 계산 인스턴스들을 연결시켜 구성할 수 있다. 일 예에서, 작업 흐름 관리자(103)는 동일한 태스크를 다수의 인스턴스들에 할당하고, 선택된 스케줄링 메커니즘을 사용하여 다수의 인스턴스들 간에 작업 부하를 분배하기 위해 로드 밸런서를 프로비저닝한다. 대안적인 예에서, 작업 흐름 관리자(103)는 동일한 태스크의 상이한 동작들을 상이한 인스턴스들(예를 들면, 병렬 동작들)에 할당한다. 위에서 기술된 2개의 예 모두에서, 작업 흐름 관리자(103)는 인스턴스들 간의 작업 흐름 경로들을 셋업할 수 있고, 따라서 적절한 작업 부하가 성공적으로 실현될 수 있다. 작업 흐름 관리자(103)는 프로세싱된 미디어 데이터/스트림들을 작업 흐름 그래프에서의 다음 태스크로 푸시하도록(또는 이들이 풀 메커니즘을 통해 이용 가능하게 되도록) 태스크들을 구성할 수 있다.
작업 흐름 관리자(103)가 NBMP 소스(101)로부터 WDD를 수신할 때, 작업 흐름 관리자(103)는 작업 흐름에 삽입될 미디어 프로세싱 기능들의 선택을 수행할 수 있다. 작업 흐름에 포함할 태스크들의 목록이 작성될 때, 작업 흐름 관리자(103)는 이어서 작업 흐름을 준비하기 위해 태스크들을 연결시킬 수 있다.
작업 흐름 관리자(103)는, 예를 들어, WDD로부터의 그래프(예를 들면, DAG)에 의해 표현되는 바와 같은, 작업 흐름을 생성할 수 있다. 도 2는 본 개시의 실시예에 따른 그래프(예를 들면, DAG)(200)의 예를 도시한다. DAG(200)는 복수의 노드들(T1 내지 T6) 및 복수의 링크들(또는 연결들)(202 내지 208)을 포함할 수 있다. 일 예에서, DAG(200)는 작업 흐름(200)을 나타낸다.
DAG(200)의 각각의 노드는 작업 흐름(200)에서의 미디어 프로세싱 태스크를 나타낼 수 있다. DAG(200)에서 제1 노드(예를 들면, 노드(T1))를 제2 노드(예를 들면, 노드(T2))에 연결시키는 링크(예를 들면, 링크(202))는 제1 노드(예를 들면, 노드(T1))의 출력을 제2 노드(예를 들면, 노드(T2))에 대한 입력으로서 전송하는 것을 나타낼 수 있다.
일반적으로, 작업 흐름은 임의의 적절한 수의 입력(들)(또는 작업 흐름 입력(들)) 및 임의의 적절한 수의 출력(들)(또는 작업 흐름 출력(들))을 포함할 수 있다. 작업 흐름 입력(들)은 미디어 소스(111), 다른 작업 흐름(들) 등에 연결될 수 있고, 작업 흐름 출력(들)은 미디어 싱크(115), 다른 작업 흐름(들) 등에 연결될 수 있다. 작업 흐름(200)은 입력(201)과 출력들(209 및 210)을 갖는다. 일부 실시예에서, 작업 흐름(200)은 중간 노드들로부터의 하나 이상의 출력을 가질 수 있다.
본 개시의 일부 양태에 따르면, 상태 보고서들은 기능들에 대한 변수들의 정보 및 이벤트들의 정보를 포함할 수 있다. 예를 들어, NBMP 기능은 프로세싱 동작의 구현이다. 일부 실시예에서, NBMP 기능은 독립형 및 자기 완비적 미디어 프로세싱 동작과 프로세싱 동작의 대응하는 설명일 수 있다. 일부 예에서, 각각의 NBMP 기능에 대해, 설명에서 2개의 독립적인 디스크립터가 사용된다. 2개의 독립적인 디스크립터 중 하나는 NBMP 기능의 이벤트들에 대한 것이고 이벤트들 디스크립터라고 지칭되며, 2개의 독립적인 디스크립터 중 다른 하나는 변수들에 대한 것이고 변수들 디스크립터라고 지칭된다. 변수들 디스크립터는 변수들을 이해하는 데 사용되는, 수학적 정의, 단위, 형식, 범용 식별자 등과 같은, 변수들의 특성들을 포함한다. 따라서, 일부 예에서, 변수들 디스크립터는 자기 설명적(self-explanatory)일 수 있고, 변수들은 변수들 디스크립터로부터의 다른 텍스트들을 참조할 필요 없이 변수들 디스크립터에 기초하여 이해될 수 있다. 유사하게, 이벤트들 디스크립터는 이벤트들을 이해하는 데 사용되는 이벤트들의 특성들을 포함한다. 따라서, 일부 예에서, 이벤트들 디스크립터는 자기 설명적일 수 있고, 이벤트들은 이벤트들 디스크립터로부터의 다른 텍스트들을 참조할 필요 없이 이벤트들 디스크립터에 기초하여 이해될 수 있다.
본 개시의 양태에 따르면, 서비스의 작업 흐름은 상이한 시스템들(플랫폼들, 클라우드 시스템들이라고도 지칭됨)에서 수행될 수 있다. 각각의 시스템은 시스템 변수들과 시스템 이벤트들을 가질 수 있다. 시스템 변수들 및 시스템 이벤트들은 상태 보고서에 포함될 수 있다.
일부 실시예에서, 상태 보고서들은 자기 완비적 디스크립터들에 기초하여 정의된다. 일 예에서, 정기 보고서는 보고 디스크립터라고 지칭되는 자기 완비적 디스크립터에 기초하여 정의된다. 예를 들어, 정기 보고서는 보고 디스크립터에 기초하여 정의되는 객체를 포함할 수 있으며, 이 객체는 보고 디스크립터 객체라고 지칭된다. 보고 디스크립터 객체는 정기 보고서가 기능 변수들과 이벤트들은 물론, 시스템 변수들과 이벤트들의 서브세트를 포함할 수 있게 한다. 변수들(예를 들면, 기능 변수들 및 시스템 변수들)은 변수들 디스크립터에 기초하여 정의되는 양식(form)에 포함될 수 있으며, 이벤트들(예를 들면, 기능 이벤트들 및 시스템 이벤트들)은 이벤트들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있다. 따라서, 정기 보고서는 자기 설명적일 수 있으며, 변수들과 이벤트들은 변수들 디스크립터와 이벤트들 디스크립터에 기초하여 이해될 수 있다.
다른 예에서, 통지 보고서는 통지 디스크립터라고 지칭되는 자기 완비적 디스크립터에 기초하여 정의된다. 예를 들어, 통지 보고서는 통지 디스크립터에 기초하여 정의되는 객체를 포함할 수 있으며, 이 객체는 통지 디스크립터 객체라고 지칭된다. 통지 디스크립터 객체는 통지 보고서가 기능 변수들과 이벤트들은 물론, 시스템 변수들과 이벤트들의 서브세트를 포함할 수 있게 한다. 변수들(예를 들면, 기능 변수들 및 시스템 변수들)은 변수들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있으며, 이벤트들(예를 들면, 기능 이벤트들 및 시스템 이벤트들)은 이벤트들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있다. 따라서, 통지 보고서는 자기 설명적일 수 있으며, 변수들과 이벤트들은 변수들 디스크립터와 이벤트들 디스크립터에 기초하여 이해될 수 있다.
다른 예에서, 모니터링 보고서는 모니터링 디스크립터라고 지칭되는 자기 완비적 디스크립터에 기초하여 정의된다. 예를 들어, 모니터링 보고서는 모니터링 디스크립터에 기초하여 정의되는 객체를 포함할 수 있으며, 이 객체는 모니터링 디스크립터 객체라고 지칭된다. 모니터링 디스크립터 객체는 모니터링 보고서가 기능 변수들과 이벤트들은 물론, 시스템 변수들과 이벤트들의 서브세트를 포함할 수 있게 한다. 변수들(예를 들면, 기능 변수들 및 시스템 변수들)은 변수들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있으며, 이벤트들(예를 들면, 기능 이벤트들 및 시스템 이벤트들)은 이벤트들 디스크립터에 기초하여 정의되는 양식에 포함될 수 있다. 따라서, 모니터링 보고서는 자기 설명적일 수 있으며, 변수들과 이벤트들은 변수들 디스크립터와 이벤트들 디스크립터에 기초하여 이해될 수 있다.
구체적으로, 일부 예에서, 각각의 기능은 변수들 디스크립터에 따라 기술되는 변수들의 목록을 포함할 수 있다.
도 3은 본 개시의 일부 실시예에 따른 기능에서의 변수들의 목록을 도시한다. 도 3에 도시된 바와 같이, 기능은, Variable-1, Variable-2, Variable-3 등과 같은, 하나 이상의 변수를 포함한다. 보고 액션에 응답하여 정기 보고서에 변수들 또는 변수들의 서브세트가 포함될 수 있다. 모니터링 액션에 응답하여 모니터링 보고서에 변수들 또는 변수들의 서브세트가 포함될 수 있다. 통지 액션에 응답하여 통지 보고서에 변수들 또는 변수들의 서브세트가 포함될 수 있다.
일부 실시예에서, 변수들 디스크립터에 따라 정의되는 변수들 디스크립터 객체가 상태 보고서에 포함될 수 있다. 변수들 디스크립터 객체는 변수들과 연관된 객체들의 어레이를 포함할 수 있다. 변수와 연관된 객체는 변수의 특성들을 포함할 수 있다. 예를 들어, Object-1은 Variable-1의 특성들을 포함하고; Object-2는 Variable-2의 특성들을 포함하며; Object-3은 Variable-3의 특성들을 포함한다.
도 4는 본 개시의 일부 실시예에 따른 변수에 대한 특성들의 테이블을 도시한다. 테이블은 특성들의 설명을 또한 포함한다. 예를 들어, 변수와 연관된 객체는 변수에 대한 이름, 변수에 대한 정의, 변수의 값, 변수에 대한 단위, 변수에 대한 파라미터 유형 및 어쩌면 변수에 대한 범위(변수에 대한 min 값 및 max 값) 등을 포함한다.
도 5는 본 개시의 일부 실시예에 따른 변수들 디스크립터 스키마의 예를 도시한다. 도시된 바와 같이, 변수들 디스크립터는 변수들과 연관된 객체들(예를 들면, 항목들)의 어레이이다.
게다가, 일부 예에서, 각각의 기능은 이벤트들 디스크립터에 따라 기술되는 이벤트들의 목록을 포함한다.
도 6은 본 개시의 일부 실시예에 따른 기능에서의 이벤트들의 목록을 도시한다. 도 6에 도시된 바와 같이, 기능은, Event-1, Event-2 등과 같은, 하나 이상의 이벤트를 포함한다. 보고 액션에 응답하여 정기 보고서에 이벤트들 또는 이벤트들의 서브세트가 포함될 수 있다. 모니터링 액션에 응답하여 모니터링 보고서에 이벤트들 또는 이벤트들의 서브세트가 포함될 수 있다. 통지 액션에 응답하여 통지 보고서에 이벤트들 또는 이벤트들의 서브세트가 포함될 수 있다.
일부 실시예에서, 이벤트들 디스크립터에 따라 정의되는 이벤트들 디스크립터 객체가 상태 보고서에 포함될 수 있다. 이벤트들 디스크립터 객체는 이벤트들과 연관된 객체들의 어레이를 포함할 수 있다. 이벤트와 연관된 객체는 이벤트의 특성들을 포함할 수 있다. 예를 들어, Object-1은 Event-1의 특성들을 포함하고; Object-2는 Event-2의 특성들을 포함한다.
도 7은 본 개시의 일부 실시예에 따른 이벤트에 대한 특성들의 테이블을 도시한다. 테이블은 특성들의 설명을 또한 포함한다. 예를 들어, 이벤트와 연관된 객체는 이벤트의 이름, 이벤트의 정의 등을 포함한다.
도 8은 본 개시의 일부 실시예에 따른 이벤트들 디스크립터 스키마의 예를 도시한다. 도시된 바와 같이, 이벤트들 디스크립터는 이벤트들과 연관된 객체들(항목들)의 어레이를 포함할 수 있다.
본 개시의 일 양태에 따르면, 보고는 목적지에 정보를 정기적으로 보고하는(예를 들면, 정기 보고서를 생성하여 송신하는) 행위이다. 일부 실시예에서, 보고는 요청에 응답하여 셋업될 수 있다. 일부 예에서, 요청 엔티티는 요청을 보고 엔티티로 송신한다. 요청은 보고 디스크립터에 따라 정의되는 제1 보고 디스크립터 객체를 포함한다. 제1 보고 디스크립터 객체는 보고할 원하는 변수들과 이벤트들의 목록, 보고서를 송신할 목적지 등을 포함할 수 있다. 이어서, 보고 엔티티는, 제1 보고 디스크립터 객체에 정의된 목적지로, 제1 보고 디스크립터 객체에 기술된 이벤트들 및 변수 값들을 송신한다. 예를 들어, 정기 보고서는 제1 보고 디스크립터 객체와 유사한 제2 보고 디스크립터 객체를 포함한다. 제2 보고 디스크립터 객체는 변수들에 대한 업데이트된 값들 및 이벤트들의 발생 정보를 포함할 수 있다. 일반적으로, 보고 디스크립터는 보고의 빈도, 보고의 시작 시간 및 정기 보고서들의 전달 프로토콜을 또한 포함한다. 목적지가 요청 엔티티일 수 있고 요청 엔티티와 상이한 엔티티일 수 있음에 유의한다.
미디어 프로세싱 시스템(100)에서, 요청 엔티티는 NBMP 소스(101) 또는 작업 흐름 관리자(103)일 수 있다. 보고 엔티티는 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크들일 수 있다.
일 예에서, 작업 흐름 관리자(103)는 정기적 보고에 대한 요청을, 태스크 API를 통해, 미디어 프로세싱 태스크(예를 들면, MPE(113)에 의해 실행되는 TASK 1)로 송신할 수 있다. 작업 흐름 관리자(103)는 원하는 변수들 및 이벤트들, 시간 간격, 그룹화, 목적지 및 프로토콜을 요청 내의 제1 보고 디스크립터 객체에 명시할 수 있다. 이어서, 미디어 프로세싱 태스크는 제1 보고 디스크립터 객체에 명시된 프로토콜을 사용하여 시간 간격에 기초하여 정기 보고서들을 목적지로 송신할 수 있다. 정기 보고서는 보고할 변수들과 이벤트들의 정보 및, 시간 간격, 그룹화, 목적지, 프로토콜 등과 같은, 다른 정보를 전달하는 제2 보고 디스크립터 객체를 포함한다.
다른 예에서, NBMP 소스(101)는 하나 이상의 보고 스킴을 셋업할 수 있고, 정기적 보고에 대한 요청을, 작업 흐름 API를 통해, 작업 흐름 관리자(103)로 송신할 수 있다. 이어서, 작업 흐름 관리자(103)는 정기 보고서들을 생성할 수 있거나 또는 작업 흐름 관리자(103)는 정기 보고서들을 생성하도록 미디어 프로세싱 태스크에 요청할 수 있다. NBMP 소스(101)는 원하는 변수들 및 이벤트들, 시간 간격, 그룹화, 목적지 및 프로토콜을 요청 내의 제1 보고 디스크립터 객체에 명시할 수 있다. 이어서, 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크는 제1 보고 디스크립터 객체에 명시된 프로토콜을 사용하여 시간 간격에 기초하여 정기 보고서들을 목적지로 송신할 수 있다. 정기 보고서는 보고할 변수들과 이벤트들의 정보 및, 시간 간격, 그룹화, 목적지, 프로토콜 등과 같은, 다른 정보를 전달하는 제2 보고 디스크립터 객체를 포함한다.
일부 실시예에서, HTTP/1.1이 프로토콜로서 사용되고, POST 방법이 POST 메시지들에서 정기 보고서들을 송신하는 데 사용된다. 예를 들어, POST 메시지의 본문(body)은 보고 디스크립터 객체를 포함한다. 일부 예에서, POST 메시지의 본문은 보고서를 식별하기 위해 요청 디스크립터 객체를 또한 포함한다. 일 예에서, 요청 디스크립터 객체는 요청의 ID(identification), 우선순위 및 미디어 프로세싱 태스크에 대한 태스크 ID(identification)를 포함한다.
도 9는 보고 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시하고, 도 10은 본 개시의 일부 실시예에 따른 보고 디스크립터 스키마의 예를 도시한다. system-events가 미디어 프로세싱 시스템에 속하는 이벤트들을 포함하고 기능의 이벤트들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 또한 system-variables가 미디어 프로세싱 시스템에 속하는 변수들을 포함하고 기능의 변수들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 일부 실시예에서, (기능) 변수들은 제1 변수들 디스크립터 객체에 포함될 수 있고, 시스템 변수들은 제2 변수들 디스크립터 객체에 포함될 수 있으며; (기능) 이벤트들은 제1 이벤트들 디스크립터 객체에 포함될 수 있고, 시스템 이벤트들은 제2 이벤트들 디스크립터 객체에 포함될 수 있다.
본 개시의 다른 양태에 따르면, 통지는 이벤트가 발생할 때 목적지에 정보를 보고하는(예를 들면, 통지 보고서를 생성하여 송신하는) 행위이다. 일부 실시예에서, 통지는 요청에 응답하여 셋업된다. 일부 예에서, 요청 엔티티는 요청을 통지 엔티티로 송신한다. 요청은 통지 디스크립터에 따라 정의되는 제1 통지 디스크립터 객체를 포함한다. 제1 통지 디스크립터 객체는, 예를 들어, 원하는 변수들과 이벤트들의 목록, 보고서를 송신할 목적지 등을 명시할 수 있다. 이어서, 제1 통지 디스크립터 객체에 나열되는 이벤트들 중 하나 이상이 발생할 때, 통지 엔티티는, 제1 통지 디스크립터 객체에 정의된 목적지로, 제1 통지 디스크립터 객체에 기술된 이벤트들과 변수 값들을 송신한다. 예를 들어, 통지 보고서는 제1 통지 디스크립터 객체와 유사한 제2 통지 디스크립터 객체를 포함한다. 제2 통지 디스크립터 객체는 변수들에 대한 업데이트된 값들 및 이벤트들의 발생 정보를 포함할 수 있다. 일반적으로, 통지 디스크립터는, 시작 시간, 통지 간격, 전달 프로토콜 등과 같은, 통지에 대한 다른 적합한 정보를 또한 포함할 수 있다. 목적지가 요청 엔티티일 수 있고 요청 엔티티와 상이한 엔티티일 수 있음에 유의한다.
미디어 프로세싱 시스템(100)에서, 요청 엔티티는 NBMP 소스(101) 또는 작업 흐름 관리자(103)일 수 있다. 통지 엔티티는 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크들일 수 있다.
일 예에서, 작업 흐름 관리자(103)는 통지에 대한 요청을, 태스크 API를 통해, 미디어 프로세싱 태스크(예를 들면, MPE(113)에 의해 실행되는 TASK 1)로 송신할 수 있다. 작업 흐름 관리자(103)는 통지에 대한 구독된 이벤트들의 목록, 변수들의 목록, 목적지 및 프로토콜을 요청 내의 제1 통지 디스크립터 객체에 명시할 수 있다. 이어서, 구독된 이벤트들의 목록 내의 하나 이상의 이벤트가 발생할 때, 미디어 프로세싱 태스크는 통지 디스크립터에 명시된 프로토콜을 사용하여 통지 보고서를 목적지로 송신할 수 있다. 통지 보고서는 변수들의 목록 내의 변수들의 정보, 구독된 이벤트들의 목록 내의 이벤트들의 정보 및 다른 정보를 전달하는 제2 통지 디스크립터 객체를 포함한다.
다른 예에서, NBMP 소스(101)는 하나 이상의 통지 스킴을 셋업할 수 있고, 통지에 대한 요청을, 작업 흐름 API를 통해, 작업 흐름 관리자(103)로 송신할 수 있다. 이어서, 작업 흐름 관리자(103)는 통지 보고서들을 생성할 수 있거나 또는 작업 흐름 관리자(103)는 통지 보고서들을 생성하도록 미디어 프로세싱 태스크에 요청할 수 있다. NBMP 소스(101)는 구독된 이벤트들의 목록, 변수들의 목록, 목적지 및 프로토콜을 요청 내의 제1 통지 디스크립터 객체에 명시할 수 있다. 이어서, 구독된 이벤트들의 목록 내의 이벤트들 중 임의의 것이 발생할 때, 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크는 통지 디스크립터에 명시된 프로토콜을 사용하여 통지 보고서를 목적지로 송신할 수 있다. 통지 보고서는 변수들의 정보와 이벤트들의 정보, 및, 목적지, 프로토콜 등과 같은, 정기 보고서의 다른 정보를 전달하는 제2 통지 디스크립터 객체를 포함한다.
일부 실시예에서, HTTP/1.1이 프로토콜로서 사용되고, POST 방법이 POST 메시지들에서 통지 보고서들을 송신하는 데 사용된다. 예를 들어, POST 메시지의 본문은 통지 디스크립터 객체를 포함한다. 일부 예에서, POST 메시지의 본문은 통지를 식별하기 위해 요청 디스크립터 객체를 또한 포함한다. 일 예에서, 요청 디스크립터 객체는 요청의 ID(identification), 우선순위 및 미디어 프로세싱 태스크에 대한 태스크 ID(identification)를 포함한다.
도 11은 통지 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시하고, 도 12a 및 도 12b는 본 개시의 일부 실시예에 따른 통지 디스크립터 스키마의 예를 도시한다. system-events가 미디어 프로세싱 시스템에 속하는 이벤트들을 포함하고 기능의 이벤트들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 또한 system-variables가 미디어 프로세싱 시스템에 속하는 변수들을 포함하고 기능의 변수들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 일부 실시예에서, (기능) 변수들은 제1 변수들 디스크립터 객체에 포함될 수 있고, 시스템 변수들은 제2 변수들 디스크립터 객체에 포함될 수 있으며; (기능) 이벤트들은 제1 이벤트들 디스크립터 객체에 포함될 수 있고, 시스템 이벤트들은 제2 이벤트들 디스크립터 객체에 포함될 수 있다.
본 개시의 다른 양태에 따르면, 모니터링은 엔티티가 정보를 요청하고 요청된 정보를 수신하는 행위이다. 일부 실시예에서, 모니터링은 요청에 응답하여 수행될 수 있다. 일부 예에서, 모니터링 엔티티(모니터링하는 엔티티)는 모니터링 업데이트 요청을 모니터링되는 엔티티(모니터링되고 있는 엔티티)로 송신한다. 모니터링 업데이트 요청은 모니터링 디스크립터에 따라 정의되는 제1 모니터링 디스크립터 객체를 포함한다. 제1 모니터링 디스크립터 객체는, 예를 들어, 원하는 변수들과 이벤트들의 목록을 명시할 수 있다. 모니터링 업데이트 요청에 응답하여, 모니터링되는 엔티티는 요청된 변수들의 값들 및 발생한 원하는 이벤트들로부터의 이벤트들의 서브세트를 전달하는 제2 모니터링 디스크립터 객체를 갖는 모니터링 보고서를 모니터링 엔티티로 송신한다.
미디어 프로세싱 시스템(100)에서, 모니터링 엔티티는 NBMP 소스(101) 또는 작업 흐름 관리자(103)일 수 있다. 모니터링되는 엔티티는 작업 흐름 관리자(103) 또는 미디어 프로세싱 태스크들일 수 있다.
일 예에서, 작업 흐름 관리자(103)는 모니터링 업데이트 요청을, 태스크 API를 통해, 미디어 프로세싱 태스크(예를 들면, MPE(113)에 의해 실행되는 TASK 1)로 송신할 수 있다. 작업 흐름 관리자(103)는 원하는 변수들과 이벤트들을 모니터링 업데이트 요청 내의 제1 모니터링 디스크립터 객체에 명시할 수 있다. 모니터링 업데이트 요청에 응답하여, 미디어 프로세싱 태스크는 모니터링 보고서를 작업 흐름 관리자(103)로 송신할 수 있다. 모니터링 보고서는 보고할 변수들과 이벤트들의 정보를 전달하는 제2 모니터링 디스크립터 객체를 포함한다.
다른 예에서, NBMP 소스(101)는 모니터링 업데이트 요청을, 작업 흐름 API를 통해, 작업 흐름 관리자(103)로 송신할 수 있다. NBMP 소스(101)는 원하는 변수들과 이벤트들을 모니터링 업데이트 요청 내의 제1 모니터링 디스크립터 객체에 명시할 수 있다. 모니터링 업데이트 요청에 응답하여, 작업 흐름 관리자(103)는 모니터링 보고서를 생성하여 NBMP 소스(101)로 송신할 수 있다. 모니터링 보고서는 보고할 변수들과 이벤트들의 정보를 전달하는 제2 모니터링 디스크립터 객체를 포함한다.
도 13은 모니터링 디스크립터에서의 파라미터들 및 파라미터들에 대한 대응하는 유형들의 테이블을 도시하고, 도 14는 본 개시의 일부 실시예에 따른 모니터링 디스크립터 스키마의 예를 도시한다. system-events가 미디어 프로세싱 시스템에 속하는 이벤트들을 포함하고 기능의 이벤트들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 또한 system-variables가 미디어 프로세싱 시스템에 속하는 변수들을 포함하고 기능의 변수들과 동일한 형식으로 클라우드에 의해 제공될 수 있음에 유의한다. 일부 실시예에서, (기능) 변수들은 제1 변수들 디스크립터 객체에 포함될 수 있고, 시스템 변수들은 제2 변수들 디스크립터 객체에 포함될 수 있으며; (기능) 이벤트들은 제1 이벤트들 디스크립터 객체에 포함될 수 있고, 시스템 이벤트들은 제2 이벤트들 디스크립터 객체에 포함될 수 있다.
일부 실시예에서, HTTP/1.1이 프로토콜로서 사용되고, POST 방법이 POST 메시지들에서 모니터링 보고서들을 송신하는 데 사용된다. 예를 들어, POST 메시지의 본문은 모니터링 디스크립터 객체를 포함한다. 일부 예에서, POST 메시지의 본문은 모니터링 보고서들을 식별하기 위해 요청 디스크립터 객체를 또한 포함한다.
도 15는 본 개시의 실시예에 따른 프로세스(1500)를 개략적으로 나타내는 플로차트를 도시한다. 일 예에서, 프로세스(1500)는, 미디어 프로세싱 시스템(100) 등과 같은, 클라우드에서 실행된다. 일부 실시예에서, 프로세스(1500)는 소프트웨어 명령어들로 구현되고, 따라서 프로세싱 회로가 소프트웨어 명령어들을 실행할 때, 프로세싱 회로는 프로세스(1500)를 수행한다. 프로세스는 (S1501)에서 시작되고 (S1510)으로 진행한다.
(S1510)에서, 변수와 연관된 제1 특성들을 포함하는 요청이 수신된다. 변수와 연관된 제1 특성들은 변수를 완전히 기술할 수 있다. 예를 들어, 제1 특성들은 변수의 정의, 변수의 단위, 변수의 형식, 변수의 범용 식별자 등을 포함한다. 변수는 제1 특성들로부터의 다른 텍스트들을 상호 참조하지 않고 제1 특성들에 기초하여 이해될 수 있다. 일부 실시예에서, 제1 특성들은 제1 변수들 디스크립터 객체의 일 부분이다. 제1 변수들 디스크립터 객체는 변수들과 제각기 연관된 객체들의 어레이를 포함한다. 변수들은 기능 변수들 또는 시스템 변수들일 수 있다. 요청은 이벤트들과 제각기 연관된 객체들의 어레이를 포함하는 제1 이벤트들 디스크립터 객체를 또한 포함할 수 있다. 이벤트들은 기능 이벤트들 또는 시스템 이벤트들일 수 있다.
일 예에서, 요청은 NBMP 소스(101)로부터 작업 흐름 관리자(103)로 송신된다. 다른 예에서, 요청은 작업 흐름 관리자(103)로부터 미디어 프로세싱 태스크로 송신된다.
(S1520)에서, 메시지가 생성되며, 메시지는 변수의 제1 특성들과 변수의 업데이트된 값을 포함한다.
일 실시예에서, 요청은 정기 보고서들을 요청하기 위한 제1 보고 디스크립터 객체를 포함한다. 제1 보고 디스크립터 객체는 변수들과 연관된 제1 변수들 디스크립터 객체, 이벤트들과 연관된 제1 이벤트들 디스크립터 객체, 및 보고 간격을 포함할 수 있다. 제1 보고 디스크립터 객체에 기초하여, 보고 간격에 따라 정기적으로 메시지가 생성된다. 메시지는 제2 보고 디스크립터 객체를 포함할 수 있다. 예를 들어, 제2 보고 디스크립터 객체는 변수들에 대한 업데이트된 값들을 갖는 제1 변수들 디스크립터 객체와 유사한 제2 변수들 디스크립터 객체를 포함한다. 메시지 내의 제2 보고 디스크립터 객체는 이벤트들의 발생들에 기초한 이벤트들의 서브세트를 갖는 제2 이벤트들 디스크립터 객체를 또한 포함할 수 있다.
다른 실시예에서, 요청은 이벤트들의 발생들에 의해 트리거링되는 통지 보고를 요청하기 위한 제1 통지 디스크립터 객체를 포함한다. 제1 통지 디스크립터 객체는 변수들과 연관된 제1 변수들 디스크립터 객체, 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 포함할 수 있다. 이어서, 구독된 이벤트들 중 적어도 하나의 발생에 응답하여, 메시지가 생성된다. 메시지는 제1 통지 디스크립터 객체와 유사한 제2 통지 디스크립터 객체를 포함한다. 예를 들어, 제2 통지 디스크립터 객체는 제1 변수들 디스크립터 객체와 유사하지만 변수들에 대한 업데이트된 값들을 갖는 제2 변수들 디스크립터 객체를 포함한다. 제2 통지 디스크립터 객체는 구독된 이벤트들의 서브세트를 갖는 제2 이벤트들 디스크립터 객체를 또한 포함한다.
다른 실시예에서, 요청은 모니터링 보고를 요청하기 위한 제1 모니터링 디스크립터 객체를 포함한다. 제1 모니터링 디스크립터 객체는 변수들과 연관된 제1 변수들 디스크립터 객체, 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 포함할 수 있다. 이어서, 요청에 응답하여, 메시지가 생성된다. 메시지는 제1 모니터링 디스크립터 객체와 유사한 제2 모니터링 디스크립터 객체를 포함한다. 예를 들어, 제2 모니터링 디스크립터 객체는 제1 변수들 디스크립터 객체와 유사하지만 변수들에 대한 업데이트된 값들을 갖는 제2 변수들 디스크립터 객체를 포함한다. 제2 모니터링 디스크립터 객체는 이벤트들의 서브세트를 갖는 제2 이벤트들 디스크립터 객체를 또한 포함한다.
(S1530)에서, 메시지가 수신자로 송신되고, 프로세스는 S1599로 진행하여 종료된다.
정기 보고서의 예에서, 제1 및 제2 보고 디스크립터 객체들은 목적지(예를 들면, url)를 포함하고, 메시지가 목적지로 송신된다.
통지 보고서의 예에서, 제1 및 제2 통지 디스크립터 객체들은 목적지(예를 들면, url)를 포함하고, 메시지가 목적지로 송신된다.
모니터링 보고서의 예에서, 메시지가 요청을 보낸 엔티티로 송신된다.
프로세스(1500)가 적절하게 적응될 수 있다. 프로세스(1500)의 단계(들)는 수정 및/또는 생략될 수 있다. 추가적인 단계(들)가 추가될 수 있다. 임의의 적합한 구현 순서가 사용될 수 있다.
위에서 설명된 기술은 컴퓨터 판독 가능 명령어들을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있으며 하나 이상의 컴퓨터 판독 가능 매체에 물리적으로 저장될 수 있다.
본 개시의 방법들 및 실시예들은 개별적으로 사용되거나 임의의 순서로 조합될 수 있다. 게다가, 방법들(또는 실시예들), 기능들 또는 태스크들 각각은 프로세싱 회로(예를 들면, 하나 이상의 프로세서 또는 하나 이상의 집적 회로)에 의해 구현될 수 있다. 일 예에서, 하나 이상의 프로세서는 비일시적 컴퓨터 판독 가능 매체에 저장된 프로그램을 실행한다.
위에서 설명된 기술은 컴퓨터 판독 가능 명령어들을 사용하여 컴퓨터 소프트웨어로서 구현될 수 있으며 하나 이상의 컴퓨터 판독 가능 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 16은 개시된 주제의 특정 실시예들을 구현하기에 적합한 컴퓨터 시스템(1600)을 도시한다.
컴퓨터 소프트웨어는 하나 이상의 컴퓨터 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU) 등에 의해 직접 또는 인터프리테이션(interpretation), 마이크로 코드 실행 등을 통해 실행될 수 있는 명령어들을 포함하는 코드를 생성하기 위해 어셈블리, 컴파일, 링킹 또는 유사한 메커니즘들을 거칠 수 있는 임의의 적합한 머신 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어들은, 예를 들어, 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트 폰, 게임 디바이스, 사물 인터넷 디바이스 등을 포함한, 다양한 유형의 컴퓨터들 또는 그 컴포넌트들에서 실행될 수 있다.
컴퓨터 시스템(1600)에 대해 도 16에 도시된 컴포넌트들은 본질적으로 예시적인 것이며, 본 개시의 실시예들을 구현하는 컴퓨터 소프트웨어의 사용 또는 기능성의 범위에 대한 어떠한 제한도 암시하도록 의도되지 않는다. 컴포넌트들의 구성이 컴퓨터 시스템(1600)의 예시적인 실시예에 예시된 컴포넌트들 중 임의의 것 또는 이들의 임의의 조합에 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
컴퓨터 시스템(1600)은 특정 인간 인터페이스 입력 디바이스들을 포함할 수 있다. 그러한 인간 인터페이스 입력 디바이스는, 예를 들어, 촉각적 입력(예컨대: 키스트로크, 스와이프, 데이터 글러브 움직임), 오디오 입력(예컨대: 음성, 박수), 시각적 입력(예컨대: 제스처), 후각적 입력(묘사되지 않음)을 통한 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 인간 인터페이스 디바이스들은 또한, 오디오(예컨대: 음성, 음악, 주변 소리), 이미지들(예컨대: 스캔된 이미지들, 정지 이미지 카메라로부터 획득된 사진 이미지들), 비디오(예컨대, 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같은, 인간에 의한 의식적인 입력과 반드시 직접 관련되지는 않은 특정 미디어를 캡처하는 데 사용될 수 있다.
입력 인간 인터페이스 디바이스들은 키보드(1601), 마우스(1602), 트랙패드(1603), 터치 스크린(1610), 데이터 글러브(도시되지 않음), 조이스틱(1605), 마이크로폰(1606), 스캐너(1607), 카메라(1608) 중 하나 이상(각각이 하나만 묘사되어 있음)을 포함할 수 있다.
컴퓨터 시스템(1600)은 특정 인간 인터페이스 출력 디바이스들을 또한 포함할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은, 예를 들어, 촉각적 출력, 소리, 빛 및 냄새/맛을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 그러한 인간 인터페이스 출력 디바이스들은 촉각적 출력 디바이스들(예를 들어, 터치 스크린(1610), 데이터 글러브(도시되지 않음) 또는 조이스틱(1605)에 의한 촉각적 피드백, 그러나 입력 디바이스들로서 역할하지 않는 촉각적 피드백 디바이스들도 있을 수 있음), 오디오 출력 디바이스들(예컨대: 스피커들(1609), 헤드폰들(묘사되지 않음)), 시각적 출력 디바이스들(예컨대, CRT 화면, LCD 화면, 플라스마 화면, OLED 화면을 포함하는 화면(1610), 각각이 터치 스크린 입력 능력을 갖거나 갖지 않고, 각각이 촉각적 피드백 능력을 갖거나 갖지 않음 - 그 일부는 2차원 시각적 출력 또는 입체 출력과 같은 수단을 통한 3차원 이상의 출력을 출력할 수 있음 -; 가상 현실 안경(묘사되지 않음), 홀로그래픽 디스플레이 및 연기 탱크(smoke tank)(묘사되지 않음)), 및 프린터들(묘사되지 않음)을 포함할 수 있다.
컴퓨터 시스템(1600)은 CD/DVD 또는 유사한 매체(1621)를 갖는 CD/DVD ROM/RW(1620)를 포함한 광학 매체, 썸 드라이브(1622), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(1623), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 디바이스 등과 같은 인간 액세스 가능 저장 디바이스들 및 이들과 연관된 매체를 또한 포함할 수 있다.
본 기술 분야의 통상의 기술자는 또한 현재 개시된 주제와 관련하여 사용되는 바와 같은 "컴퓨터 판독 가능 매체"라는 용어가 전송 매체, 반송파 또는 다른 일시적인 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1600)은 하나 이상의 통신 네트워크에 대한 인터페이스를 또한 포함할 수 있다. 네트워크는, 예를 들어, 무선, 유선, 광학일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량용 및 산업용, 실시간, 지연 허용 등일 수 있다. 네트워크의 예는 이더넷, 무선 LAN과 같은 로컬 영역 네트워크, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크, CANBus를 포함하는 차량용 및 산업용 등을 포함한다. 특정 네트워크는 통상적으로 (예를 들어, 컴퓨터 시스템(1600)의 USB 포트와 같은) 특정 범용 데이터 포트 또는 주변 버스(1649)에 연결된 외부 네트워크 인터페이스 어댑터를 필요로 하며; 다른 네트워크는 통상적으로 아래에 기술된 바와 같이 시스템 버스에 연결되는 것에 의해 컴퓨터 시스템(1600)의 코어에 통합된다(예를 들어, 이더넷 인터페이스가 PC 컴퓨터 시스템에 통합되거나 셀룰러 네트워크 인터페이스가 스마트 폰 컴퓨터 시스템에 통합됨). 이러한 네트워크들 중 임의의 것을 사용하여, 컴퓨터 시스템(1600)은 다른 엔티티들과 통신할 수 있다. 그러한 통신은 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 송신 전용(예를 들어, CANbus로부터 특정 CANbus 디바이스들로) 또는 양방향(예를 들어, 로컬 영역 또는 광역 디지털 네트워크들을 사용하여 다른 컴퓨터 시스템들로)일 수 있다. 위에서 기술된 바와 같이 특정 프로토콜들 및 프로토콜 스택들은 해당 네트워크들 및 네트워크 인터페이스들 각각에서 사용될 수 있다.
전술한 인간 인터페이스 디바이스들, 인간 액세스 가능 저장 디바이스들 및 네트워크 인터페이스들은 컴퓨터 시스템(1600)의 코어(1640)에 연결될 수 있다.
코어(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 등을 포함한다.
CPU(1641), GPU(1642), FPGA(1643) 및 가속기(1644)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어들을 실행할 수 있다. 해당 컴퓨터 코드는 ROM(1645) 또는 RAM(1646)에 저장될 수 있다. 과도적인 데이터가 또한 RAM(1646)에 저장될 수 있는 반면, 영구 데이터는, 예를 들어, 내부 대용량 스토리지(1647)에 저장될 수 있다. 하나 이상의 CPU(1641), GPU(1642), 대용량 스토리지(1647), ROM(1645), RAM(1646) 등과 밀접하게 연관될 수 있는 캐시 메모리를 사용하여 메모리 디바이스들 중 임의의 것에 대한 빠른 저장 및 검색이 가능할 수 있다.
컴퓨터 판독 가능 매체는 다양한 컴퓨터 구현 동작들을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 통상의 기술자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
제한이 아닌 예로서, 아키텍처를 갖는 컴퓨터 시스템(1600), 특히 코어(1640)는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함함)가 하나 이상의 유형적인 컴퓨터 판독 가능 매체에 구현된 소프트웨어를 실행한 결과로서 기능을 제공할 수 있다. 그러한 컴퓨터 판독 가능 매체는 위에서 소개된 바와 같은 사용자 액세스 가능 대용량 스토리지는 물론, 코어 내부 대용량 스토리지(1647) 또는 ROM(1645)과 같은, 비일시적 성질을 갖는 코어(1640)의 특정 스토리지와 연관된 매체일 수 있다. 본 개시의 다양한 실시예들을 구현하는 소프트웨어는 그러한 디바이스들에 저장되고 코어(1640)에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는, 특정 요구에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(1640) 및 특히 그 내부의 프로세서들(CPU, GPU, FPGA 등을 포함함)이, RAM(1646)에 저장되는 데이터 구조들을 정의하는 것 및 소프트웨어에 의해 정의되는 프로세스들에 따라 그러한 데이터 구조들을 수정하는 것을 포함하여, 본 명세서에서 기술되는 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하게 할 수 있다. 추가적으로 또는 대안으로서, 컴퓨터 시스템은, 본 명세서에 기술된 특정 프로세스들 또는 특정 프로세스들의 특정 부분들을 실행하기 위해 소프트웨어 대신에 또는 소프트웨어와 함께 동작할 수 있는, 회로(예를 들어: 가속기(1644))에 고정 배선되거나 다른 방식으로 구현되는 로직의 결과로서 기능을 제공할 수 있다. 소프트웨어에 대한 언급은 로직을 포함할 수 있으며, 적절한 경우, 그 반대의 경우도 마찬가지이다. 컴퓨터 판독 가능 매체에 대한 언급은 실행을 위한 소프트웨어를 저장하는 회로(예컨대, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로, 또는, 적절한 경우, 둘 모두를 포함할 수 있다. 본 개시는 하드웨어와 소프트웨어의 임의의 적합한 조합을 포함한다.
본 개시가 여러 예시적인 실시예들을 기술하였지만, 본 개시의 범위 내에 속하는 변경, 치환 및 다양한 대체 등가물이 있다. 따라서, 본 기술 분야의 통상의 기술자가, 본 명세서에서 명시적으로 도시되거나 기술되지는 않았지만, 본 개시의 원리들을 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템들 및 방법들을 고안할 수 있다는 것을 이해할 것이다.

Claims (20)

  1. 클라우드 서비스를 위한 방법으로서,
    클라우드 서비스를 위해 동작하는 프로세싱 회로에 의해, 적어도 변수와 연관된 제1 특성들을 포함하는 요청을 수신하는 단계 - 상기 제1 특성들은 상기 변수를 기술하고, 상기 요청은 적어도 이벤트와 연관된 제2 특성들을 더 포함하며, 상기 제2 특성들은 상기 이벤트를 기술하고, 상기 변수는 기능 변수 및 시스템 변수 중 하나이며, 상기 이벤트는 기능 이벤트 및 시스템 이벤트 중 하나임 -;
    상기 프로세싱 회로에 의해, 상기 변수와 연관된 상기 제1 특성들, 상기 변수의 업데이트된 값 및 상기 이벤트의 발생을 표시하기 위한 상기 이벤트와 연관된 상기 제2 특성들을 포함하는 메시지를 생성하는 단계; 및
    상기 프로세싱 회로에 의해, 상기 메시지를 수신자에게 송신하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 특성들은 상기 변수의 정의, 상기 변수의 단위, 상기 변수의 형식, 및 상기 변수의 범용 식별자 중 적어도 하나를 포함하는, 방법.
  3. 제1항에 있어서, 상기 프로세싱 회로는 상기 클라우드 서비스에 대한 작업 흐름을 확립하고 관리하도록 구성되는, 방법.
  4. 제1항에 있어서, 상기 프로세싱 회로는 상기 클라우드 서비스에 대한 작업 흐름 내의 하나 이상의 태스크를 수행하도록 구성되는, 방법.
  5. 제1항에 있어서,
    상기 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체, 이벤트들과 연관된 제1 이벤트들 디스크립터 객체, 및 보고 간격을 갖는 제1 보고 디스크립터 객체를 포함하고,
    상기 메시지를 생성하는 단계는:
    이전 메시지에 대해 보고 간격을 둔 시간에, 상기 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 상기 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 상기 메시지를 생성하는 단계
    를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 구독된 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 통지 디스크립터 객체를 포함하고, 상기 메시지를 생성하는 단계는:
    상기 구독된 이벤트들 중 적어도 하나의 발생에 응답하여, 상기 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 상기 구독된 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 상기 메시지를 생성하는 단계
    를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 요청은 적어도 변수들과 연관된 제1 변수들 디스크립터 객체 및 이벤트들과 연관된 제1 이벤트들 디스크립터 객체를 갖는 제1 모니터링 디스크립터 객체를 포함하고,
    상기 방법은:
    모니터링 엔티티로부터 송신되는 상기 요청을 수신하는 단계;
    상기 요청에 응답하여, 상기 변수들에 대한 업데이트된 값들을 가지는 제2 변수들 디스크립터 객체 및 상기 이벤트들의 서브세트와 연관된 제2 이벤트들 디스크립터 객체를 갖는 제2 보고 디스크립터 객체를 포함하는 상기 메시지를 생성하는 단계; 및
    상기 메시지를 상기 모니터링 엔티티로 송신하는 단계
    를 추가로 포함하는, 방법.
  8. 제1항에 있어서, 상기 메시지는 상기 요청을 식별해 주는 요청 디스크립터 객체를 추가로 포함하는, 방법.
  9. 클라우드 서비스를 제공하기 위한 클라우드 내의 장치로서,
    제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 구성된 프로세싱 회로
    를 포함하는, 장치.
  10. 명령어들이 저장된 컴퓨터 판독가능 매체로서, 상기 명령어들은, 클라우드 서비스를 위한 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 야기하는 컴퓨터 판독가능 매체.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020217024857A 2019-09-27 2020-09-24 클라우드 서비스를 위한 방법 및 장치 KR102565776B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201962907312P 2019-09-27 2019-09-27
US201962907322P 2019-09-27 2019-09-27
US201962907327P 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 (ko) 2021-09-08
KR102565776B1 true KR102565776B1 (ko) 2023-08-11

Family

ID=75162068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024857A KR102565776B1 (ko) 2019-09-27 2020-09-24 클라우드 서비스를 위한 방법 및 장치

Country Status (6)

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

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 (ko) * 2010-10-07 2014-11-04 주식회사 에스에스디 블랭크 터치 제조방법
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 (zh) * 2012-06-27 2014-10-08 浙江大学 面向云制造的设计服务资源跨域组建方法
US10419524B2 (en) * 2012-09-07 2019-09-17 Oracle International Corporation System and method for workflow orchestration for use with a cloud computing environment
EP2913964A4 (en) * 2013-12-30 2015-09-09 Huawei Tech Co Ltd METHOD FOR DISTRIBUTING SOFTWARE-DEFINED NETWORK EVENTS, CONTROL DEVICE AND PROCESSOR
US9639412B1 (en) * 2014-03-11 2017-05-02 Apteligent, Inc. Application performance management tools with a service monitor for collecting network breadcrumb data
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
JP6607963B2 (ja) * 2015-06-26 2019-11-20 アマゾン・テクノロジーズ、インコーポレイテッド 集計されたメトリクスの測定値のデータストア
CN111164573A (zh) * 2017-10-06 2020-05-15 康维达无线有限责任公司 启用雾服务层并应用于智能运输系统

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
JP7285945B2 (ja) 2023-06-02
US20230004446A1 (en) 2023-01-05
CN114128236B (zh) 2023-05-23
US11500687B2 (en) 2022-11-15
KR20210110701A (ko) 2021-09-08
EP4035317A1 (en) 2022-08-03
EP4035317A4 (en) 2023-09-13
US20210096925A1 (en) 2021-04-01
CN114128236A (zh) 2022-03-01
JP2022522839A (ja) 2022-04-20
WO2021061939A1 (en) 2021-04-01
US11861411B2 (en) 2024-01-02

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 (zh) 用于实现处理功能的资源估计方法、装置和电子设备
KR102516231B1 (ko) 네트워크 기반 미디어 처리(nbmp)에서의 미디어 처리 함수를 대한 구성 파라미터의 그래프 표현 및 설명
US11734016B2 (en) Method and apparatus for stateless parallel processing of tasks and workflows
US20210096904A1 (en) Method and apparatus for a step-enabled workflow
US11593150B2 (en) Method and apparatus for cloud service
KR102668137B1 (ko) 태스크들 및 작업 흐름들의 상태 비저장 병렬 프로세싱 방법 및 장치

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