스크립팅 동작 수행

스크립팅 언어는 스크립트를 지원하는 프로그래밍 언어입니다. 스크립트란 태스크 실행을 컴파일하는 대신 해석하고 자동화할 수 있는 특수한 런타임 환경용으로 작성된 프로그램입니다. 스크립팅을 통해 자동화할 수 있는 환경으로는 소프트웨어 어플리케이션, 웹 브라우저 내의 웹 페이지, OS(운영 체제)의 셸, 임베드된 시스템 등이 있습니다.

Ooyala Flex의 가장 유용한 기능 중 하나는 스크립팅 지원입니다. 개발자는 스크립팅을 통해 널리 알려진 단순한 Javascript 형식 구문을 사용하여 다음과 같은 작업을 통해 더욱 동적이며 확장 가능한 Ooyala Flex의 동작을 작성할 수 있습니다.

• 몇 분 이내에 새 동작, 시간이 지정된 동작 및 이벤트 처리기 생성

• 구성 값 평가를 런타임으로 연기

• Ooyala Flex의 API에 액세스하여 컴파일된 코드를 배포하지 않고도 정교한 새 기능 생성

• 실시간 데이터에 따라 조정되는 매우 동적인 워크플로 작성

• 동적 코드 변환 및 유효성 검사 프로필 생성

Ooyala Flex에서는 각기 다른 세 가지 시나리오를 지원하는 세 가지 유형의 스크립팅 언어를 사용할 수 있습니다. 처음 두 가지 언어는 특정 사용 사례를 지원하도록 특화되어 있습니다. 그리고 세 번째 언어인 Groovy는 매우 유용한 범용 언어입니다.

  • EL(식 언어): 슈퍼 사용자가 고급 구성을 수행하는 데 사용되는 식 언어는 구성 필드에서 사용할 수 있으며 Ooyala Flex 개체 액세스 및 공용 언어 연산자를 지원합니다.
  • VTL(Velocity 템플릿 언어): Velocity 템플릿 언어는 문서의 형식을 변환하는 데 사용되는 템플릿 작성 언어입니다. 이 스크립팅은 하위 수준 코드 변환 프로필을 생성하는 데 사용됩니다.
  • 고급 스크립팅(Groovy 스크립트): 고급 스크립팅은 동작, 이벤트 처리기, 시간이 지정된 동작 등의 특수 스크립팅 플러그인에서 지원됩니다. 개발자는 스크립팅 플러그인을 사용하여 Ooyala Flex의 기능에 관해 고급 스크립트 기반 확장을 구현할 수 있습니다. Ooyala Flex는 이러한 용도로 Groovy 스크립트를 사용합니다. 이 스크립트는 고급 개체 지향 프로그래밍 패러다임과 Java SDK에 대한 모든 권한을 제공하는 Java 기반 언어입니다. 또한, Ooyala Flex API에 대한 모든 권한도 제공합니다.

스크립트 처리

스크립트 가이드에는 스크립트를 레이어 방식으로 배치하여 다양한 스크립팅 언어를 같은 코드에서 사용할 수 있다는 내용이 나와 있습니다. 예를 들어 특정 Groovy 스크립트 내에 식 언어를 임베드할 수 있습니다. 이 경우에는 식 언어가 먼저 처리된 다음 출력 코드가 추가 처리를 위해 Groovy 스크립트 엔진으로 전달됩니다. 스크립트가 처리되는 순서는 다음과 같습니다.

1) 속성식

2) 메타데이터식

3) 식 언어

4) Groovy 스크립트

이러한 처리 순서의 예가 아래에 나와 있습니다. 여기서는 특정 Groovy 스크립트 내에 식 언어가 임베드되었습니다.

def execute(){

//Reference asset Object in the context asset name

to the description.

asset.setName("${asset.description}")

}

스크립팅 동작 이해

정적 텍스트에서는 식의 값이 계산된 다음 출력에 삽입됩니다.

값은 세 가지 방식으로 설정할 수 있습니다.

1) 단일식 구문 사용: $ {expr}. 식을 평가한 다음 결과를 필요한 출력 유형으로 강제 변환합니다.

2) 텍스트로 구분하거나 묶은 식 하나 이상 사용 some$ {expr}${expr}text$ {expr}. 왼쪽에서 오른쪽으로 식을 평가합니다. 각 식은 문자열로 강제 변환된 다음 중간의 텍스트와 연결됩니다. 그 결과로 생성된 문자열을 필요한 출력 유형으로 강제 변환합니다.

3) 텍스트만 사용: sometext

이 경우에는 문자열 값을 필요한 출력 유형으로 강제 변환합니다.

구성 값을 설정하는 데 사용되는 식은 필요한 유형의 컨텍스트에서 평가됩니다. 식 평가 결과가 필요한 유형과 정확하게 일치하지 않으면 유형 변환이 수행됩니다.

고급 스크립팅 이해

Ooyala Flex에서는 표준식 언어뿐 아니라 고급 평가 생성을 위한 다음과 같은 몇 가지 고급 기능도 지원합니다.

• 메타데이터식

• XPath식

• 시스템 속성

메타데이터식

Ooyala Flex에서는 자산 계층 내에서 메타데이터 필드 값을 찾는 데 사용할 수 있는 몇 가지 연산자를 지원합니다.

Table 1.
설명
@@fieldname@@ @@로 시작하고 끝나는 식입니다. 이 식을 사용하면 메타데이터 변숫값에 액세스할 수 있습니다. 예를 들어 @@film_id@@는 현재 자산과 연결된 메타데이터에서 film_id 변수의 값을 반환합니다.
%%assetContext%% 메타데이터식은 임베드된 자산 계층식도 지원합니다. 이러한 식은 %%로 시작하고 끝납니다. 상위 또는 하위 메타데이터의 값을 검색하려는 경우에는 자산 계층식을 지정할 수도 있습니다. 예를 들어 @@%%./..%%artist[0]:first_name[0]@@는 상위 항목의 메타데이터를 기준으로 'artist[0]:first_name[0]' 메타데이터식을 평가합니다.

XPath식

Ooyala Flex에서는 스크립팅 컨텍스트 내에 있는 원시 XML 문서('document')에서 XML 필드 값을 찾는 데 사용할 수 있는 몇 가지 연산자를 지원합니다.

Table 2.
설명
@!{xpath} 이 식을 사용하면 xml을 기준으로 xpath를 평가할 수 있습니다. 예를 들어 @!{/work-order/transcode-profile/name}은 xml 문서를 기준으로 하여 '/work-order/transcode-profile/name' xpath를 평가합니다. 'document' 키가 포함된 컨텍스트에서 변수로 제공되는 문서 개체를 기준으로 하여 xpath식을 평가합니다. 컨텍스트에서 xml 문서가 제공되는 경우 해당 문서가 변수로 자동 추가되므로 이 xml을 기준으로 하여 정의된 xpath식을 확인합니다.

시스템 속성

Table 3.
설명
@[propertyName] 시스템 속성은 Ooyala Flex 시스템에서 제공되는 변수입니다. 슈퍼 사용자는 시스템 속성을 직접 생성할 수 있으며 스크립팅을 통해 이러한 속성에 액세스할 수 있습니다. 시스템 속성에는 범위를 지정할 수 있습니다.