KeyFlow는 2010년에 ㈜맑은기술에서 국내 최초로 Mac OS X 환경에서 구현된 MAM(Media Asset Management) 솔루션이다. 현재 국내 유수 방송사에서 사용중인 KeyFlow의 핵심기능으로는 미디어 애셋 관리 기능, 메타데이터 관리 기능, Apple QuickTime을 이용한 동영상 처리 기능, 동영상 트랜스코딩 기능, Scene Detection을 이용한 카탈로깅(Cataloging), Open API 지원 등이 있다.
KeyFlow 시스템 구조
KeyFlow 시스템은 기본적으로 개방형 구조를 지향하도록 설계가 된 시스템이다. 개방형 구조라는 것은 말 그대로 폐쇄적으로 동작하는 방식이 아니라는 점이다.
KeyFlow 솔루션은 기본적으로 업계 표준 방식의 데이터 표현 방식을 이용하며 Open API와 같은 다른 시스템에서 KeyFlow를 연동하거나 혹은 그 반대가 되는 경우도 손쉽게 처리할 수 있는 코어 구조를 가지고 있다.
그 첫 번째로 KeyFlow 시스템의 메타데이터 구조를 들 수 있다.
메타데이터(Metadata)
KeyFlow의 메타데이터 시스템은 지극히 사용자 입장에서 MAM 시스템을 구성 및 설계, 구현을 할 수 있는 환경을 제공한다. 이는 사용자 입장에서 필요로 하는 메타데이터를 구성하고 이를 조직화하여 시스템 설계를 할 수 있게끔 해준다. 아울러 사용자가 설계한 메타데이터들은 동적으로 데이터베이스화를 하기 때문에 데이터베이스화에 대한 부담감을 가지지 않는다.
KeyFlow에서 제공하는 동적 메타데이터 구조는 실시간으로 데이터베이스 시스템과 맵핑이 되고 이를 실시간 반영을 하는 구조를 제공한다. 이외 비디오, 이미지, 오디오, 도큐멘트 등 여러 가지 미디어 타입에 대한 메타데이터 구조를 기본적으로 지원한다. 이런 메타데이터 구조는 자체적으로 개발한 내용이 아닌 업계 표준 메타데이터를 IPTC에 근거를 두고 미디어에 대한 메타데이터 구조를 제공한다. 이런 구조를 통해 KeyFlow 메타데이터 시스템은 사용자 메타데이터와 미디어 메타데이터를 손쉽게 관리 및 처리할 수 있는 환경을 제공한다.
<그림 1>은 KeyFlow 메타데이터를 관리하는 관리자 애플리케이션의 화면이다.
그림처럼 직관적인 인터페이스를 통해 사용자는 메타데이터를 구성 및 관리할 수 있으며 실시간으로 반영을 할 수 있다. 이 과정을 통해서 생성된 메타데이터들은 곧바로 사용할 수 있는 환경을 제공하며 함께 제공되는 클라이언트 모듈에서 Open API 서버를 통해 필요로 하는 메타데이터를 받을 수 있는 구조이다.
애셋(Asset)
일반적으로 ‘애셋’이라는 것은 하나의 미디어를 지칭하는 뜻으로 해석할 수 있다. 방송 쪽에서 해석을 하게 되면 애셋은 비디오 파일, 오디오, 기타 물리적인 디지털 파일을 의미할 수 있다.
항상 필수적인 것은 아니지만 이런 디지털 미디어 파일들은 사용자 필요성에 의해 거미줄처럼 엮일 수 있는 구조를 가져야 하며 손쉽게 처리할 수 있어야 한다.
이러한 사용자의 요구들을 충분히 수용하기 위해서 KeyFlow의 애셋 구조는 앞서 언급한 메타데이터 시스템을 근본으로 해서 계층 구조 형태의 애셋 구조를 만들 수 있다.
예를 들면 ‘A’라는 비디오 파일을 마스터라고 가정하고 ‘A-
KeyFlow 시스템에서는 이러한 구조가 기본 구조로 사용되기 때문에 애셋의 연계 및 애셋 생성에 필요한 워크플로우 수행 시 매우 효율적인 결과를 얻을 수 있다.
아울러 KeyFlow에서 함께 제공하는 애셋 구조 시스템이 한가지 더 있다.
대부분 방송 시스템에서 하나의 애셋이 생성되는 과정을 보게되면 여러 가지 시스템들이 조합이 되어 하나의 애셋을 생성하게 된다. 예를 들면 ‘인제스트 –> 트랜스코딩 –> 카탈로깅’같은 경우를 들 수 있다. 이 뜻은 하나의 애셋이 생성되는 과정에서 생성되는 메타데이터는 병렬적으로 생성될 수 있어야 한다는 뜻이기도 하다. 만약 직렬적으로 생성이 되는 경우에는 오류 발생시 처음부터 다시 해야 하는 번거로운 과정들이 발생하지만 병렬적으로 처리한다는 것은 특정 오류 발생시 해당 부분의 재수행을 통해서 잘못 생성된 애셋을 정상화할 수 있다는 뜻이다. KeyFlow에서 처리되는 모든 애셋들은 앞서 언급한 메타데이터 시스템과 뒷장에서 언급할 워크플로우 시스템들과 병렬적으로 동작해서 보다 안정적인 애셋 생성을 할 수 있다.
KeyFlow에서의 컴포넌트라는 의미는 랩퍼(Wrapper), 트랜스코더(Transcoder)같은 할당된 일들을 서버와 연동해서 자동으로 처리하는 소프트웨어 종류를 의미한다. KeyFlow 솔루션에는 MXF 랩퍼, 트랜스코더, 카탈로거(Cataloger), 특정 포맷을 위한 언랩퍼(Unwrapper) 등 다양한 컴포넌트 소프트웨어들이 제공이 된다. 이러한 컴포넌트 소프트웨어들은 각각의 임무에 충실한 기능을 수행할 뿐만 아니라 앞서 언급했던 메타데이터 시스템들과 한몸이 되서 방송 업무에 필요로 하는 워크플로우를 수행하게 된다.
동적 워크플로우 시스템
KeyFlow는 동적으로 관리하는 메타데이터 시스템 외 동적으로 관리할 수 있는 워크플로우 시스템을 제공한다. KeyFlow의 동적 워크플로우 시스템은 말 그대로 사용자가 동적으로 워크플로우를 구성할 수 있는 기능을 의미한다. 일반적으로 하나의 워크플로우가 구성되기 위해서는 앞서 언급한 여러 컴포넌트들을 조합해서 하나의 워크플로우를 생성하게 된다. 대부분 그렇지만 방송 업무에서의 워크플로우는 매우 다양한 생리 구조를 가지고 있으며 이를 사용하기 까지 검증 과정들에서 많은 시간을 할애한다. 많은 시간을 들이는 이유가 워크플로우가 정확히 수행되고 원하는 결과가 정확히 나오는지를 확인하기 위함이다.
한번 만들어진 워크플로우는 특별한 경우가 아닌 이상 변경이 되는 경우는 드물지만 문제는 오류 또는 이에 상응한 상황을 만났을 때 워크플로우 수정을 통해서 문제를 해결하곤 한다.
그럼 워크플로우의 최종 목적은 무엇인가?
워크플로우는 하나의 애셋이 생성되는 과정을 의미한다. 하나의 애셋은 다양한 형태의 메타데이터로 구성이 되어있고 구성된 메타데이터들을 분류화를 해서 담당 컴포넌트들에 할당이 되고 이런 컴포넌트들을 묶어서 워크플로우를 구성하는 일반적인 절차를 따르게 된다.
동적 워크플로우의 더 깊은 뜻은 동적으로 생성만 가능하다는 뜻에만 비중이 있는 게 아니다. 동적이라는 말은 실시간으로 각 워크플로우들의 상태 점검 및 오류 발생시 해당 워크플로우의 일부분을 중지, 재실행 같은 것들을 할 수 있어야 한다는 뜻을 포함하고 있다.
Open API 서버와의 협업
현재 KeyFlow는 Mac 및 Windows 버전을 동시에 지원하며 해당 플랫폼에 맞는 Native SDK를 제공한다. 이외 플랫폼 애플리케이션이 아닌 외부 시스템 연동 또는 타 시스템에서 KeyFlow와 손쉽게 통합할 수 있게끔 하기 위한 Open API 시스템을 함께 제공한다.
KeyFlow의 Open API 시스템은 업계 표준을 따른 구조를 가지고 있고 일반적인 HTTP 방식, SOAP 방식을 모두 지원하는 구조를 가지고 있으며 차기 버전에서는 RESTFul 방식까지 지원할 예정이다. Open API 서버의 주된 목적은 KeyFlow 핵심이 되는 주요 기능들을 외부에서 별도의 SDK 없이 손쉽게 이용할 수 있게끔 하기 위함이고 독립적인 플랫폼 시스템을 구성하기 위함이다. Open API 서버는 데이터베이스와 직접적인 통신을 담당하고 있기 때문에 데이터베이스 제한에서 벗어나며 기능에 따라서 굳이 MAM 시스템을 거치지 않아도 원하는 결과를 조회하고 업데이트할 수 있는 장점을 제공한다. 아울러 Open API 서버 확장을 통해 MAM 시스템의 변화 없이 사용자가 요구하는 시스템을 빠른 시간 내에 구축할 수 있는 장점을 함께 제공한다.