KR20100074818A - 데이터 방송 서비스 제공 방법 및 그를 위한 장치 - Google Patents
데이터 방송 서비스 제공 방법 및 그를 위한 장치 Download PDFInfo
- Publication number
- KR20100074818A KR20100074818A KR1020080133344A KR20080133344A KR20100074818A KR 20100074818 A KR20100074818 A KR 20100074818A KR 1020080133344 A KR1020080133344 A KR 1020080133344A KR 20080133344 A KR20080133344 A KR 20080133344A KR 20100074818 A KR20100074818 A KR 20100074818A
- Authority
- KR
- South Korea
- Prior art keywords
- application
- user
- path
- access
- cookie
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
본 발명은 데이터 방송 서비스에 관한 것으로, 본 발명에 따른 디지털 방송 수신기의 일 예는, 어플리케이션 실행에 이용되는 사용자 정보에 대한 사용자의 입력을 수신하는 사용자 인터페이스부; 상기 사용자 인터페이스부로부터 수신되는 사용자의 입력에 근거하여 해당 어플리케이션의 실행을 제어하는 프로세서부; 및 상기 프로세서부의 제어에 따라 데이터를 디코딩하는 디코더를 포함하여 구성하되, 상기 프로세서부는 어플리케이션과 미들웨어를 포함하고, 상기 어플리케이션은 상기 수신되는 사용자의 입력을 키를 이용하여 특정 형태로 로지컬 저장 볼륨 내 해당 사용자에 대한 경로를 생성하여 저장하고, 상기 미들웨어는 상기 어플리케이션의 액세스 요청에 따라 해당 사용자에 대한 상기 경로가 생성되었는지 판단하고, 생성되었으면 상기 어플리케이션이 상기 경로에 대한 액세스 권한 여부를 판단하여 액세스 권한이 있으면 상기 경로를 액세스하여 기 저장된 사용자의 입력 정보를 디코딩하도록 제어하는 것을 특징으로 한다. 따라서, 본 발명에 따르면, 사용자 정보를 간단한 쿠키 형태로 저장할 수 있고, 기존의 웹 페이지의 쿠키의 개념을 차용하고 보안화할 수 있고, 어플리케이션에 대한 사용성을 증가시킬 수 있다.
데이터 방송 서비스, ACAP, 어플리케이션, 쿠키, 인크립트/디크립트
Description
본 발명은 데이터 방송 서비스(data broadcasting service)에 관한 것으로, 더욱 상세하게는 데이터 방송 서비스를 위한 어플리케이션(application)에 대한 사용자(user)의 사용성 내지 접근 편리성을 높일 수 있는 방법 및 그 장치에 관한 것이다.
종래 서비스의 개념은 오디오와 비디오에 한정되어 있었으나, 최근에는 하드웨어(Hardware)의 고사양화 등으로 인해 다양하고 복잡한 어플리케이션들이 점차 많이 나오고 있다. 이에 따라 하나의 어플리케이션이 하나의 서비스로 인식되고 이용되기도 한다.
방송 환경 역시 그러한 어플리케이션들이 동작 가능하도록 변화하고 있다.
관련하여, 어플리케이션들 중에는 그 실행을 위해 사용자에 의한 정보의 입력이 필요한 어플리케이션도 있다. 다만, 데이터 방송 서비스를 위한 플랫폼에서 실행되는 자바 어플리케이션들의 경우에는 기본적으로 무상태형 어플리케이션(stateless application)이다. 이는 사용자에 의해 입력되는 정보가 별도로 저장 되지 않음을 의미한다. 그 결과 어플리케이션 실행 과정에서 사용자가 입력하는 정보는 별도로 저장되지 않으므로 다시 이용할 수 없다. 또한, 어플리케이션 실행 과정에서 여러 단계를 거치는 동안 사용자의 정보 입력이 필요한 경우, 모든 단계가 완료되기 전에 해당 어플리케이션이 어떤 이유로 종료되었다면, 사용자는 해당 어플리케이션을 재실행하는 과정에서 이미 거친 단계에 필요한 사용자 정보를 재입력하여야 하는 불편함이 있어 사용자의 어플리케이션에 대한 사용성을 떨어뜨리는 문제점이 있었다.
이하 본 발명에서는 상기와 같은 문제점을 해결하기 위해, 본 발명의 목적은 어플리케이션이 각 상태에서 필요한 정보를 저장할 수 있도록 하고자 한다.
본 발명의 다른 목적은, 기존의 웹 페이지가 사용하는 쿠키의 개념을 디지털 방송 수신기의 어플리케이션에서 차용할 수 있도록 하고자 한다.
본 발명의 또 다른 목적은, 쿠키 형태로 저장되는 정보를 암호화 모듈을 이용함으로써 정보 누출을 방지할 수 있도록 하고자 한다.
본 발명의 또 다른 목적은, 어플리케이션의 사용 시나리오를 더욱 추가할 수 있도록 하고자 한다.
본 발명의 또 다른 목적은, 데이터 방송 서비스를 제공하는 방법 및 장치를 제공하고자 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 데이터 방송 서비스를 위한 어플리케이션(application)의 실행에 이용되는 각 사용자별 사용자 정보를 저장하는 방법의 일 예는, 사용자 정보를 입력받는 단계; 상기 입력받은 사용자 정보를 특정 형태로 저장하는 오브젝트(object)를 생성하는 단계; 상기 생성된 오브젝트를 직렬화(serialize)하고, 직력화된 오브젝트 데이터의 암호화(encryption)를 위한 키(key)를 수신하는 단계; 및 상기 수신되는 키를 이용하여 상기 직렬화된 오브젝트 데이터를 암호화하고, 암호화된 오브젝트 데이터를 로지컬 저장 볼 륨(Logical Storage Volume; LSV)에 저장하는 단계;를 포함하여 이루어지는 것을 특징으로 한다.
이때, 상기 수신되는 키를 저장하는 단계를 더 포함할 수 있다.
그리고 상기 특정 형태는 쿠키 형태를 포함할 수 있다.
또한, 상기 해당 로지컬 저장 볼륨(LSV)은, 각 사용자별로 구분되는 유일한 경로를 설정할 수 있다.
그리고 상기 로지컬 저장 볼륨(LSV)은, 각 경로에 대하여 해당 경로의 사용자 이외의 다른 사용자의 접근을 제한하기 위해 ExtendedFileAccessPermission은 동적 설정이 불가능하도록 설정(set)할 수 있다.
또한, 상기 사용자 정보는, 해당 어플리케이션에 의해 정의되는 것으로, 로그-인(Log-in) 정보를 포함할 수 있다.
그리고 상기 오브젝트는 맵 오브젝트(Map object)를 포함하고, 상기 맵 오브젝트는 해쉬 맵(Hash Map)을 포함할 수 있다.
본 발명에 따라 상기 로지컬 저장 볼륨(LSV)에 저장된 쿠키 형태의 사용자 정보를 이용하여 데이터 방송 서비스를 위한 어플리케이션을 실행하는 방법에 있어서, 해당 사용자에 대한 쿠키가 저장된 경로에 대한 어플리케이션의 액세스 권한이 있으면, 저장 프록시(Storage Proxy)를 얻는(get) 단계; 및 해당 사용자에 대한 쿠키가 저장된 경로가 생성되었으면, 해당 로지컬 저장 볼륨(LSV)를 액세스하여 사용자 정보를 디코딩하는 단계;를 포함하여 이루어지는 것을 특징으로 하는 방법.
이때, 상기 해당 사용자에 대한 쿠키가 저장된 경로에 대한 어플리케이션의 액세스 권한이 있는지 판단하는 단계를 더 포함할 수 있다.
그리고 상기 판단 결과 어플리케이션의 액세스 권한이 없으면, 해당 로지컬 저장 볼륨(LSV) 내 쿠키에 대한 어플리케이션의 액세스를 거부할 수 있다.
또한, 상기 쿠키가 저장된 경로에 대한 어플리케이션의 액세스 권한 여부 판단은, 퍼미션 요청 파일(permission request file)에 의해 인가된 퍼시스턴트 저장 액세스(persistence storage access)를 소유 여부로 판단할 수 있다.
그리고 상기 해당 사용자에 대한 쿠키가 저장된 경로가 기 생성되었는지 판단하는 단계를 더 포함할 수 있다.
또한, 상기 판단 결과 해당 사용자에 대한 쿠키가 저장된 경로가 기 생성되지 않았으면, 로지컬 저장 볼륨(LSV)에 새로운 경로를 생성할 수 있다.
그리고 상기 디코딩 단계는, 기 암호화(encryption)된 오브젝트 데이터를 기 수신한 키에 근거하여 복호화(descryption)하는 단계와; 상기 복호화된 오브젝트 데이터를 역직렬화(deserialize)하여 오브젝트를 생성하는 단계를 포함할 수 있다.
또한, 상기 오브젝트는 맵 오브젝트를 포함하고, 상기 맵 오브젝트는 해쉬 맵을 포함할 수 있다.
본 발명에 따른 디지털 방송 수신기의 일 예는, 어플리케이션 실행에 이용되는 사용자 정보에 대한 사용자의 입력을 수신하는 사용자 인터페이스부; 상기 사용자 인터페이스부로부터 수신되는 사용자의 입력에 근거하여 해당 어플리케이션의 실행을 제어하는 프로세서부; 및 상기 프로세서부의 제어에 따라 데이터를 디코딩하는 디코더를 포함하여 구성하되, 상기 프로세서부는 어플리케이션(application) 과 미들웨어(middleware)를 포함하고, 상기 어플리케이션은 상기 수신되는 사용자의 입력을 키(key)를 이용하여 특정 형태로 로지컬 저장 볼륨(Logical Storage Volume; LSV) 내 해당 사용자에 대한 경로(path)를 생성하여 저장하고, 상기 미들웨어는 상기 어플리케이션의 액세스 요청에 따라 해당 사용자에 대한 상기 경로가 생성되었는지 판단하고, 생성되었으면 상기 어플리케이션이 상기 경로에 대한 액세스 권한 여부를 판단하여 액세스 권한이 있으면 상기 경로를 액세스하여 기 저장된 사용자의 입력 정보를 디코딩하도록 제어하는 것을 특징으로 한다.
이때, 상기 미들웨어는, 상기 경로가 생성되지 않았으면, 상기 로지컬 저장 볼륨(LSV) 내에 새로운 경로를 생성하도록 제어할 수 있다.
그리고 상기 미들웨어는, 상기 어플리케이션의 액세스 권한이 없으면, 해당 액세스의 상기 경로에 대한 액세스를 거부하도록 제어할 수 있다.
따라서, 본 발명에 따르면,
첫째, 어플리케이션에서 사용자 정보를 간단한 쿠키 형태로 저장할 수 있는 효과가 있다.
둘째, 기존의 웹 페이지가 사용하는 쿠키의 개념을 디지털 방송 수신기의 어플리케이션에서 차용할 수 있는 효과가 있다.
셋째, 쿠키 형태로 저장되는 정보를 암호화 모듈을 이용함으로써 정보 누출을 방지할 수 있는 효과가 있다.
넷째, 어플리케이션의 사용 시나리오를 더욱 추가할 수 있는 효과가 있다.
다섯째, 사용자의 어플리케이션의 사용성 내지 접근 편리성을 증가시킬 수 있는 효과가 있다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시 예로서 설명되는 것이며, 이것에 의해서 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당해 기술분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
관련하여, 이하 본 명세서에서 "미들웨어(MiddleWare; M/W)"라 함은, 데이터 방송 플랫폼(data broadcasting platform)에서 실행되는 미들웨어를 말한다. 이때, 상기 데이터 방송 플랫폼은, MHP(multimedia home platform), OCAP(opencable application platform), ACAP(advanced common application platform) 등을 포함할 수 있다.
그리고 "어플리케이션(application)"이라 함은, 상기 미들웨어(M/W) 기반 위에 실행되는 어플리케이션을 포함하여 디지털 방송을 위한 어플리케이션을 말한다. 다만, 이하 본 명세서에서는 설명의 편의를 위해 데이터 방송 플랫폼 중 ACAP에서 실행되는 미들웨어(M/W) 기반 위에 실행되는 자바 어플리케이션(Java application)을 예로 하여 설명한다. 이때, 상기 자바 어플리케이션은 예를 들어, Xlet 어플리케이션을 포함한다. 그리고 상기 Xlet 어플리케이션은 사용자에 의한 정보 입력이 필요로 되는 T-commerce나 T-banking 어플리케이션과 같은 인터랙티브 어플리케이션들(interactive applications)을 포함한다.
이하 첨부된 도면을 참조하여 본 발명의 기술 사상을 보다 상세하게 설명한다.
이하 본 명세서에서는 본 발명의 기술 사상을 실현하기 위한 바람직한 실시 예로서 어플리케이션의 실행 과정에서 사용자에 의한 입력 정보를 특정 형태로 저장하고, 상기 특정 형태로 저장된 사용자에 의한 입력 정보를 이용함으로써 어플리케이션에 대한 사용성 내지 접근 편리성을 제공하고자 한다. 여기에서, 본 명세서에서는 설명의 편의를 위해, 상기 특정 형태는, 무상태형을 가지는 Http Web Site들에서 이용되는 쿠키(Cookie) 방식을 예로 하여 설명한다. 또한, 상기 사용자에 의한 입력 정보를 저장하는 쿠키는, 데이터 방송 플랫폼에서 이용되는 외부 저장 공간에 대한 개념을 사용하는 것을 예로 하여 설명한다. 예를 들어, 상기 외부 저장 공간은, 디지털 방송 수신기 세트 내의 퍼시스턴트 메모리(persistent memory)를 들 수 있다. 따라서, 어플리케이션은 사용자에 의해 입력되는 정보를 상기 퍼시스턴스 메모리에 저장할 수 있다.
본 명세서에서는 본 발명의 기술 사상을 구현하기 위해 상술한 바와 같이, 데이터 방송을 위한 어플리케이션에서 웹 페이지에서 사용되는 쿠키의 개념을 차용 한다.
관련하여, 본 명세서에서는 어플리케이션에서 쿠키를 저장하고 이용할 수 있도록 저장 프록시(Storage Proxy)를 제공한다. 상기 저장 프록시는 사용자별(UserID) 및/또는 어플리케이션별로 로지컬 저장 볼륨(Logical Storage Volume; LSV)을 제공할 수 있다. 또한, 상기 로지컬 저장 볼륨(LSV)은 해당 사용자만이 접근할 수 있도록 함으로써 보안을 유지할 수도 있다. 여기에서, 상기 로지컬 저장 볼륨(LSV)에 해당 사용자만이 접근할 수 있도록 하기 위해 본 발명에서는 일 예로 암호화/복호화(encryption/decryption) 알고리즘을 이용한다. 다만, 그에 대한 보다 상세한 설명은 후술한다.
본 발명을 설명하기 위해 Xlet 어플리케이션에 대해 설명하면, 다음과 같다.
도 1은 본 발명과 관련하여 방송 수신기의 계층 구조에 대하여 도시한 구조도이다.
도 1을 참조하면, 방송 수신기(100)는, 어플리케이션(Application, 110), 미들웨어(120), 및 자원(Resources, 130)을 구비한다.
어플리케이션(110)은 방송 수신기(100)에서의 다양한 목적들을 달성하기 위해 실행되는 프로그램으로서 정의된다. 여기서, 상기 어플리케이션(110)은 방송 수신기(100) 상에서 다수의 어플리케이션들(111 내지 119)로 실행될 수 있다.
어플리케이션(111 내지 119)들은, 방송 수신기(100)로 디지털 텔레비전 프로그램들과 함께 방송 스트림으로 방송된다. 어플리케이션(111 내지 119)들은 관련 규격 하에 특정된 DSM-CC 프로토콜과 같은 프로토콜에 따라 캐로셀(carousel) 포맷 으로 방송될 수 있고, 주기적으로 방송된다. 여기에서, 상기 어플리케이션들(111 내지 119)은 예를 들어, 전자 프로그램 가이드(electronic program guide), 따라하는 게임(play-along game), 텔레뱅킹(tele-banking), 메뉴 네비게이션 옵션(menu navigation option), 텔레쇼핑(tele-shopping), 전자 신문(electronic newspaper), 및 유사한 정보 서비스가 있을 수 있다.
방송 수신기(100)는 이들 어플리케이션들(111 내지 119)을 수신하고 그것들을 국부적으로 실행한다.
Xlet을 실행하기 위한 기본적인 하드웨어는, 자바 TV 플랫폼(예를 들어, 도 1의 미들웨어(120))을 지원하는 셋톱박스 또는 디지털 방송 수신기를 들 수 있다. Xlet들은 "주된(main)" 방법을 가지지 않으며, 인터페이스 Xlet을 실행한다.
Xlet들은 수명 주기를 가지며, 수명 주기 메소드 서명(life cycle method signature)은 인터페이스 Xlet에 의해 정의된다. 인터페이스 Xlet은 생성, 초기화, 시작, 및 파괴와 같은 Xlet 상태 변화들을 알리기 위해 수명 주기 메소드들을 제공한다.
그러나 인터페이스 Xlet은 그 수명 주기 메소드들에 대한 실행을 제공하지 않는다. 모든 자바 TV 실행들은 인터페이스 Xlet을 경유하여 다양한 어플리케이션 상태들을 통해 하나 이상의 Xlet들을 이동시키기 위해 수명 주기 메소드들을 호출하는 어플리케이션 매니저(127)를 가진다.
인터페이스 Xlet은 그 수명 주기 메소드들에 대한 실행을 제공하지 않는다. 따라서, 개발자는 Xlet 수명 주기에서의 각각의 지점에서 일어나는 것을 정의함으 로써 그 메소드들에 대한 어플리케이션-지정 실행들을 제공한다. 예를 들면, 게임 Xlet에 대한 iniXlet 메소드는 사용자 인터페이스 구성 요소들을 생성할 것이다. Xlet은 몇몇 상태 변화들 자체를 개시하고 XletContext 인터페이스에서 메소드들을 야기함으로써 그 상태 변화들을 어플리케이션 매니저(127)에 알리도록 설계된다.
인터페이스 Xlet은 자바 TVTM API(Application Programming Interface)에 정의된 패키지들 중 하나인 javax.tv.xlet 패키지(package)에 의해 정의된다. 자바 TV API는 패키지들로 그룹핑된 인터페이스들 및 클래스들(classes)로 이루어진다. 이들 패키지들은 텔레비전 네트워크들에 의해 전송된 방송 스트림을 통해 디지털 방송 수신기로 전송된 비디오, 오디오, 및 데이터를 처리하기 위한 인터페이스들 및 클래스들을 포함한다.
javax.tv.xlet에 정의된, 인터페이스 Xlet은 어플리케이션 매니저(127)가 Xlet을 생성, 초기화, 시작, 정지 및 파괴할 수 있도록 허용한다. 어플리케이션 매니저(127)는 Xlet의 상태를 유지하고 다양한 수명 주기 메소드들(Methods)을 통해 Xlet 상에 메소드들을 야기한다. Xlet은 어플리케이션 매니저(127)에 의해 지시되는 바와 같이 그것의 내부 동작들 및 리소스 사용들을 업데이트하기 위해 이들 메소드들을 실행한다.
도 2는 본 발명과 관련하여 Xlet 어플리케이션의 라이프 싸이클(life cycle)의 일 예를 설명하기 위해 도시한 개념도이다.
도 2를 참조하면, javax.tv.xlet에 의해 정의된 바와 같이, 인터페이스 Xlet 의 메소드 요약은 다음과 같다.
Xlet은 메모리(memory)에 로드된 상태(Loaded state, 210)가 된다. initXlet은 로드된 상태(210)의 Xlet 자체를 초기화하고 중지된 상태(Paused state, 220)로 진입하기 위해 Xlet에 신호를 보낸다. startXlet은 서비스를 제공하기 시작하고 활성화 상태(Active state, 230)로 진입하기 위해 Xlet에 신호를 보낸다. PauseXlet은 서비스 제공을 중지하고 중지된 상태(220)로 진입하기 위해 Xlet에 신호를 보낸다. destroyXlet은 서비스 제공을 종료하고 파괴된 상태(Destroyed state, 240)로 진입하기 위해 Xlet에 신호를 보낸다.
미들웨어(120)는 어플리케이션(110)과 자원(130) 간을 매개하는 역할을 수행한다. 예를 들어, 미들웨어(120)는 어플리케이션(110)의 정보 또는 명령을 수신하고, 수신한 명령을 실행하여 수신한 명령에 대한 결과를 산출하며, 산출한 결과를 어플리케이션(120)에 송신하는 기능을 수행한다. 이를 위해 미들웨어(120)는 인터페이스(Interface, 121)와 시스템 서비스(System Service, 126)를 구비한다.
인터페이스(121)는 어플리케이션(110)과 시스템 서비스(126) 사이에서 데이터, 정보 및 명령을 송수신하는 기능을 수행한다. 즉, 어플리케이션(110)은 인터페이스(121)를 통해 미들웨어(120)가 제공하는 서비스를 사용할 수 있다. 어플리케이션(110)의 제작자가 미들웨어(120)을 사용할 수 있도록, 각 방송 규격에는 미들웨어(120)가 제공하는 특정 서비스를 요청하기 위한 요청 양식이 정의되어 있다. 만일 어플리케이션(110)이 각 방송 규격에 정의된 요청 양식에 따라 미들웨어(120)에 특정 서비스에 대한 수행 요청을 한 경우에는, 인터페이스(121)는 특정 서비스에 대한 수행 요청을 수신하고 시스템 서비스(126)가 요청한 특정 서비스를 수행할 수 있도록 특정 서비스에 대한 수행 요청을 시스템 서비스(126)로 전달한다. 여기서, 방송 규격에서 정의된 미들웨어(120)가 제공하는 특정 서비스를 요청하기 위한 요청 양식은 Java로 정의된 API가 될 수 있다. 관련하여, "javax.tv.xlet.Xlet"은 정의된 인터페이스이고 관련 규격 하에서 실행될 수 있고 인식될 수 있는 엔티티(entity)이다.
시스템 서비스(126)는 인터페이스(121)가 송신하는 요청에 따라 서비스를 수행하고, 그 결과를 인터페이스(126)에 제공한다. 또한, 시스템 서비스(126)는 어플리케이션(110)을 방송국으로부터 다운로드 받고, 다운로드 받은 어플리케이션(110)의 라이프 싸이클을 관리하며, 활성화 상태(230)의 어플리케이션(110)에 자원(130)을 할당 및 반환을 관리하고 할당된 자원에 대한 정보를 관리한다. 이를 위해 시스템 서비스(126)는 어플리케이션 매니저(127)를 구비한다. 여기서, 미들웨어(120)는 일 예로 관련 규격에 따라 구현되어 해당 규격의 API를 지원할 수 있다.
어플리케이션 매니저(127)는 어플리케이션(111 내지 119)의 라이프 싸이클을 관리하는 모듈로서, 어플리케이션(111 내지 119)의 생성, 실행, 및 종료를 관리한다.
자원(130)은 다양한 기능을 가진 하드웨어 엔티티(Hardware entity)를 의미하며, 하드웨어 자원 및 소프트웨어 자원으로 표현될 수 있다. 여기에서, 하드웨어 자원이라 함은, 튜너부, 복조부, CA(Conditional Access), 역다중화부, 디코더, 메모리, 하드디스크, 및 네트워크 어댑터를 포함한다. 또한, 소프트웨어 자원이라 함 은, 그룹화된 복수의 하드웨어 엔티티를 나타낼 수 있고, 프레스(press), 쓰레드(thread)와 같은 운영체제(Operating System) 상에 정의되는 자원을 포함한다. 여기에서, 상기 쓰레드는, 프로세스 내에서 실행되는 흐름 단위를 말한다. 일반적으로 하나의 프로그램은 하나의 쓰레드를 가지지만, 프로그램 환경에 따라 둘 이상의 쓰레드를 동시에 실행할 수도 있다. 따라서, 프로그램은 멀티-쓰레드(multi-thread) 방식으로 실행될 수 있다. 이러한 멀티-쓰레드 방식은, 프로세스가 독립적으로 실행되며 각각 별개의 메모리를 차지하고 있는 것과 달리, 각 쓰레드가 프로세스 내의 메모리를 공유해 사용하는 실행 방식이다.
또한, 자원(130)은 어플리케이션(110)이 내부 구현에 무관하게 이용될 수 있도록 어플리케이션(110)에 투명하게(transparently) 제공되며, 상술한 바와 같이 이를 위해 미들웨어(120)가 애플케이션(110)과 자원(130)을 매개하는 역할을 수행한다. 그리고 자원(130)은 공유 자원과 비공유 자원으로 구분될 수 있다. 여기에서, 상기 공유 자원은, 메모리, 쓰레드, 네트워크 세션 등의 자원으로 어플리케이션들(111 내지 119)이 상호 공유할 수 있는 자원을 말하고, 비공유 자원은, 튜너 등의 자원으로 하나의 어플리케이션(111)이 사용하고 있는 경우에는 다른 어플리케이션(112 내지 119)이 사용할 수 없는 자원을 말한다.
자원(130)을 이용하기 위해서 Xlet은, 자율적으로 버츄얼 머신(Virtual Machine) 메모리와 쓰레드들을 사용한다. 이러한 자원에 대한 규약이나 관리는, 전적으로 미들웨어(120)에서 이루어지며, 어플리케이션(110)은 자신의 자원의 사용량에 대해 큰 고려 없이 동작하게 된다.
도 3은 본 발명의 일실시 예에 따라 구성한 방송 수신기의 블록도이다.
도 3을 참조하면, 본 발명에 따른 방송 수신기(300)는, 튜너부(311), 복조부(312), CA부(313), 역다중화부(314), 미디어 디코더부(315), 사용자 인터페이스부(321), 저장매체(322), 네트워크 인터페이스부(323), 및 프로세서부(350)를 포함한다. 여기에서, 튜너부(311), 복조부(312), CA부(313), 역다중화부(314), 미디어 디코더부(315), 사용자 인터페이스부(321), 저장매체(322), 네트워크 인터페이스부(323), 및 프로세서(350)는 방송 수신기의 자원에 해당하는 구성요소이다.
튜너부(311)는, 지상파, 위성, 케이블 중 적어도 하나로부터 방송 데이터를 수신하여 복조부(312)로 출력한다. 즉, 튜너부(311)는 안테나, 케이블, 위성 중 적어도 어느 하나를 통해 입력되는 방송 신호(301) 중 특정 채널의 주파수를 튜닝(tunning)하여 복조부(312)로 출력한다. 튜너부(311)는 방송 소스 예를 들어, 지상파, 케이블, 위성별로 각각 구비되거나 또는 통합 튜너일 수 있다. 또한, 튜너부(311)가 지상파 방송용 튜너라고 가정할 경우, 적어도 하나의 디지털 튜너와 아날로그 튜너를 각각 구비할 수도 있고, 디지털/아날로그 통합 튜너일 수도 있다. 튜너부(311)는 지상파를 예로 들 경우, 안테나를 통해 전송되는 지상파 방송 콘텐츠 즉, 방송 신호 중 사용자가 선택한 채널의 방송 신호를 튜닝하여 복조부(312)로 출력한다.
여기에서, 튜너부(311)가 수신하는 방송 데이터는 A/V 데이터(Audio/Video data), MPEG 섹션 데이터, 어플리케이션 데이터 중 적어도 하나를 포함한다. 상기 MPEG 섹션 데이터는 SI(System Information), EAS(Emergency Alert System), AIT(Application Information Table), 및 XAIT(eXtended AIT)를 포함하는 데이터일 수 있다. 특히, AIT는 데이터 서비스를 위해 수신기에서 구동되는 어플리케이션에 대한 정보를 포함하는 테이블을 의미하며, 경우에 따라서는 AMT라고도 불리운다. 이러한 AIT는 어플리케이션에 대한 정보, 예컨대 어플리케이션의 이름(name), 어플리케이션의 버전, 어플리케이션의 우선순위, 어플리케이션의 ID, 어플리케이션의 상태(auto-start, 사용자에 의한 조작 가능, kill 등), 어플리케이션의 타입(Java 또는 HTML), 어플리케이션의 클래스(class)들과 데이터 파일을 포함하는 스트림의 위치, 어플리케이션의 기본 디렉토리(base directory), 어플리케이션의 아이콘의 위치 등에 대한 정보를 포함할 수 있다.
어플리케이션 데이터는 어플리케이션(370)의 프로그램 코드를 포함하는 데이터를 의미한다. 프로세서(350)는 AIT를 기초로 전송 모드를 결정하고, 결정한 전송 모드로 어플리케이션 데이터를 다운로드 하도록 제어할 수 있다. 여기서, 전송 모드는 방송 데이터를 수신하는 전송 방식 및 전송 매체의 종류를 의미한다. 전송 방식은 네트워크 계층별 사용되는 프로토콜 종류를 의미하는 것으로, DSM-CC User-to-User, Data and Object Carousel protocols, HTTP, TCP, UDP, IP, MPEG-2 Transport Stream, Ethernet 프로토콜 등이 선택적으로 사용될 수 있다. 또한, 전송 방식은 관련 규격상에 정의된 브로드캐스트 채널 프로토콜들(Broadcast Channel Protocols) 및 인터넷 채널 프로토콜들(Interaction Channel Protocols)이 될 수 있다. 전송 매체의 종류로는 지상파, 위성, 케이블 및 인터넷 망 등을 포함할 수 있다.
또한, 전송 모드는 방송 데이터의 종류에 따라 전송 방식 및 전송 경로를 달리하는 전송 모드를 포함할 수 있다. 즉, 방송 수신기(300)는 A/V 데이터는 케이블을 통해 수신하고, 어플리케이션 데이터는 인터넷 망을 통해 수신하는 전송 모드를 지원할 수 있다.
또한, 프로세서(350)는 AIT를 이용하여 어플리케이션 데이터를 검출할 수 있다. AIT를 이용하여 어플리케이션 데이터를 검출하는 방법으로는 component_tag, original_network_id, transport_stream_id, service_id가 사용되어 검출될 수 있다. 상기 component_tag는 해당 오브젝트 캐로셀(Object Carousel)의 DSI(Download Server Initiate)를 운반하는 엘레멘터리 스트림(elementary stream)을 지칭하며, 상기 original_network_id는 트랜스포트 커넥션(transport connection)을 제공하는 트랜스포트 스트림(TS)의 DVB-SI original_network_id를 지칭한다. 또한, 상기 transport_stream_id는 트랜스포트 커넥션을 제공하는 트랜스포트 스트림(TS)의 MPEG TS를 지칭하며, 상기 service_id는 트랜스포트 커넥션을 제공하는 서비스의 DVB-SI를 지칭한다. 상기 original_network_id, transport_stream_id, service_id가 이용되어 특정 채널에 대한 정보를 얻을 수 있다.
네트워크 인터페이스(323)는, 인터넷 망을 통해 방송 데이터를 수신하고, 수신한 방송 데이터를 CA부(313) 또는 통신 제어부(388)로 출력한다.
복조부(312)는 튜너부(311)가 출력한 신호를 복조하여 CA부(313)로 출력한다. CA부(313)는 복조부(312)가 출력한 신호 또는 네트워크 인터페이스부(323)가 출력한 신호를 디스크램블(descramble)하여 역다중화부(314)로 출력한다. 역다중화부(314)는 CA부(313)가 출력한 신호인 디지털 데이터 스트림을 오디오 및 비디오를 나타내는 데이터 스트림(예를 들면, MPEG-2 포맷) 및 반복 방송되는 DSM-CC 객체 캐로셀 형태의 어플리케이션들용 데이터로 역다중화한다. 여기서, 비-방송 배송 채널들과 인터페이스 할 수 있는 방송 수신기의 다른 실시 예로 튜너(311)는 비-방송 배송 채널에 적합한 네트워크 인터페이스로 대치될 수 있다. 비-방송 배송 채널은 인터넷 프로토콜(IP) 기반 배송 채널일 수 있다.
미디어 디코더부(315)는 역다중화부(314)가 역다중화한 오디오 스트림 및 비디오 스트림을 디스플레이될 수 있는 오디오(302) 및 비디오(303)로 각각 복호화한다. 이를 위해 미디어 디코더(315)는 오디오 디코더와 비디오 디코더를 포함할 수 있다. 여기서, 디스플레이되는 비디오(303)는 사용자 인터페이스부(321)로부터 출력되는 영상을 포함할 수 있다.
프로세스부(350)는 다수의 어플리케이션(370)과 미들웨어(380)를 실행시킨다.
미들웨어(380)는 튜너부(311), 복조부(312), CA(313), 역다중화부(314), 미디어 디코더부(315), 사용자 인터페이스부(321), 저장매체(322), 및 네트워크 인터페이스부(323)를 제어 또는 관리하고, 어플리케이션(370)에 할당한다. 이를 위해 미들웨어(380)는, 튜너 제어부(381), CA 제어부(382), MPEG-2 섹션 필터부(section filter)(383), 서비스 정보 처리부(384), DSM-CC(385), 미디어 제어부(386), 저장 제어부(387), 및 통신제어부(388)를 구비한다.
튜너 제어부(381)는 튜너부(311)를 어플리케이션(370)에 할당하거나 어플리케이션(370)의 명령에 따라 튜너부(811)의 튜닝 주파수를 변경할 수 있도록 제어한다. CA 제어부(382)는 복조부(312)의 출력 신호를 CA부(313)에서 디스크램블(descramble)하도록 제어한다.
MPEG-2 섹션 필터부(383)는 역다중화부(314)가 역다중화한 비디오에 관련된 데이터 스트림을 필터링하여 비디오를 디스플레이하기 위한 정보를 추출하고, 서비스 정보 처리부(384)는 역다중화부(314)가 역다중화한 데이터 중에서 서비스 정보를 추출하여 처리한다. 즉, MPEG-2 섹션 필터부(383)는 수신된 방송 데이터로부터 MPEG 섹션 데이터를 추출한다. MPEG-2 섹션 필터부(383)는 수신된 방송 데이터로부터 전송 모드에 대한 안내 정보인 호스트 접근 안내 정보를 추출할 수 있다. 여기서, 호스트 접근 안내 정보는 일 예로, AIT에 포함되어 전송될 수 있다. 이러한 경우에는, MPEG-2 섹션 필터부(383)는 방송 데이터로부터 AIT를 추출함으로써 호스트 접근 안내 정보를 추출할 수 있다.
DSM-CC(385)는 역다중화부(314)가 역다중화한 어플리케이션용 데이터를 파싱하여 어플리케이션 프로그램 및 어플리케이션 정보를 추출하고 추출된 정보를 저장 매체(322)에 저장한다. 저장매체(322)에 저장된 어플리케이션 프로그램은 프로세스(350)에서 실행된다.
미디어 제어부(386)는 미디어 디코더(315)를 제어하여 오디오(302) 및 비디오(303)가 디스플레이되도록 제어한다. 또한, 미디어 제어부(386)는 저장매체(322)에 저장된 데이터 접근 정보와 연관되는 MPEG-2 섹션 필터부(383)가 추출한 호스트 접근 안내 정보를 검색하고, 검색한 호스트 접근 안내 정보가 지시하는 전송 모드로 방송 데이터를 수신하도록 튜너(311) 또는 네트워크 인터페이스(323)를 제어할 수 있다. 여기서, 미디어 제어부(386)는 네트워크 인터페이스(323)을 직접 제어하는 대신에 통신 제어부(388)가 네트워크 인터페이스(323)를 제어하도록 하여, 네트워크 인터페이스(323)이 검색한 호스트 접근 안내 정보가 지시하는 전송 모드로 방송 데이터를 수신하도록 할 수 있다.
저장 제어부(387)는 오디오 스트림, 비디오 스트림, 어플리케이션 프로그램, 어플리케이션 정보 및 서비스 정보를 저장매체(322)로 저장하고 저장매체(322)에 저장된 오디오 스트림, 비디오 스트림, 어플리케이션 프로그램, 어플리케이션 정보 및 서비스 정보에 접근하는 것을 제어한다. 저장매체(322)는 RAM 메모리, FLASH 메모리 및 하드 디스크(HDD) 중 어느 하나일 수 있고 또는 RAM 메모리, FLASH 메모리 및 하드 디스크(HDD)를 구비할 수 있다. 여기서, 상기 하드 디스크(HDD)는 내장형 하드 디스크 또는 외장형 하드 디스크일 수 있다.
통신 제어부(388)는 어플리케이션(370)이 네트워크 통신이 가능하도록 지원하며, 이를 위해 네트워크 인터페이스(323)를 제어한다. 또한, 통신 제어부(388)는 네트워크 인터페이스(323)가 방송 데이터를 수신하도록 제어한다. 통신 제어부(388)는 네트워크 인터페이스(323)가 수신한 방송 데이터 중에 어플리케이션 데이터를 추출하여 저장매체에 저장되도록 저장 제어부(387)에 제공할 수 있고, 네트워크 인터페이스(323)가 수신한 방송 데이터 중에 A/V 데이터를 CA(313)로 출력되도록 제어할 수 있다.
여기서, 프로세스(380)는 단일 프로세스 또는 멀티 프로세스로 구현될 수 있고, 미들웨어(380)의 튜너 제어부(381), CA 제어부(382), MPEG-2 섹션 필터부(383), 서비스 정보 처리부(384), DSM-CC(385), 미디어 제어부(386), 저장 제어부(387) 및 통신 제어부(388)는 각각 하드웨어 또는 펌웨어로 이루어질 수 있다. 이러한 경우에는 미들웨어(380)는 어플리케이션(370)이 하드웨어 또는 펌웨어로 이루어진 튜너 제어부(381), CA 제어부(382), MPEG-2 섹션 필터부(383), 서비스 정보 처리부(384), DSM-CC(385), 미디어 제어부(386), 저장 제어부(387) 및 통신 제어부(388)를 사용할 수 있도록 매개하는 역할을 수행한다.
도 4는 본 발명의 일실시 예에 따른 미들웨어의 구성과 어플리케이션 및 로지컬 저장 볼륨(LSV)와의 관계를 설명하기 위해 도시한 블록도이다.
도 4를 참조하면, 본 발명의 일실시 예에 따른 미들웨어(400)는 도 3의 미들웨어(380)에 대응하는 것으로서, 인터페이스 모듈(405) 및 로지컬 저장 볼륨(LSV) 제어 모듈(410)을 포함한다. 이때, 상기 인터페이스 모듈(405)과 로지컬 저장 볼륨(LSV) 제어 모듈(410)은 각각 도 1에서의 인터페이스(121) 및 시스템 서비스(126)와 대응하는 구성요소이다.
어플리케이션(415)은 도 3의 어플리케이션(370)에 대응하는 구성요소로서, 해당 어플리케이션을 액세스하기 위해 사용자에 의해 입력되는 정보와 관련하여 쿠키 키 내지 사용자 키를 전송하는 로그-인 서버를 포함한다.
로지컬 저장 볼륨(LSV)(425)은 도 3의 저장매체(322)에 대응하는 구성요소일 수 있다. 로지컬 저장 볼륨에 대한 보다 상세한 설명은 후술한다.
인터페이스 모듈(405)은 어플리케이션(415)과 정보 또는 명령을 송수신한다. 예를 들어, 인터페이스 모듈(405)은 어플리케이션(415)으로부터 사용자의 로그-인 수행에 따른 쿠키 저장 및 이용에 관한 제어 명령 요청이 수신되면, 수신된 제어 명령 요청을 로지컬 저장 볼륨(LSV) 제어 모듈(410)에 전송한다. 반대로, 인터페이스 모듈(405)은 로지컬 저장 볼륨(LSV) 제어 모듈(410)이 상기 어플리케이션(415)의 쿠키 저장 및 이용에 관한 제어 명령 요청에 대한 응답을 전송하면, 상기 응답을 수신하여 어플리케이션(415)으로 전송한다.
도 3을 참조하면, 도 4의 미들웨어(400)는 예를 들면, 방송 수신기(300)에서 수신되는 방송 신호에 포함된 본 발명에 따른 화면 제어와 관련된 어플리케이션 우선순위에 관한 정보를 기 수신한 것으로 가정할 수 있다. 이때, 미들웨어(400)는 상기 수신한 어플리케이션 우선순위정보를 파싱한다. 그리고 상기 파싱한 정보를 저장매체(402)에 저장한다.
도 5는 본 발명의 일실시예에 따른 쿠키 클래스를 도시한 것이다.
본 발명에서는 어플리케이션을 액세스하는 사용자의 정보를 쿠키 형태로 저장한다고 하였다. 이를 위해 본 명세서에서는 일 예로 도 5에 도시된 바와 같이, XletCookieManager라는 오브젝트(object)를 생성하여 이용한다. 따라서, 본 발명에 따르면, 어플리케이션은 상기 XletCookieManager 오브젝트를 이용하여 쿠키를 관리할 수 있다.
도 5를 참조하여 본 발명에 따른 쿠키 클래스에 대해 보다 상세하게 설명하면, 다음과 같다.
각 쿠키는 직렬화(serialize)된 자바(Java)의 맵 오브젝트(Map Object) 형태로 저장할 수 있다. 이때, 상기 맵 오브젝트는 예를 들어, 검색에 장점을 가지는 해쉬(Hash) 계열을 이용한다. 즉, 상기 맵 오브젝트는 HashMap을 포함한다. 상기 HashMap은 스트링(string)으로 된 밸류(vale)와 키(key) 쌍(pair)으로 저장된다. 여기서, 상기 직렬화된 오브젝트는 어플리케이션 서버의 사용자 정보에 저장된 사용자 키를 사용하여 인크립트(encrypt)된다. 따라서, 상기 인크립트된 쿠키를 다시 읽고 재생하기 위해서는 해당 사용자 키를 사용하여 디크립트해야 한다. 또한, 본 발명과 관련하여, 인크립트/디크립트 알고리즘과 키 렝쓰(Key Length) 등은, 다양한 방식과 알고리즘을 이용하여 수행할 수 있으나, 본 명세서에서는 인크립트/디크립트에 동일한 키를 사용하는 싱글 키 알고리즘(single key algothrism)을 이용하는 것을 예로 하여 설명한다. 다만, 이에 대한 상세한 설명은 여기에서는 생략한다.
userKey는, 본 발명과 관련하여, 어플리케이션에서 쿠키를 저장함에 있어서, 사용자에 고유한 정보가 저장될 수 있으므로 보안을 위하여 다른 사용자의 접근을 제한하기 위하여 암호화 방식을 사용할 수 있고, 여기에서, 암호화를 위한 인크립트/디크립트 과정에서 사용하기 위한 키를 말한다.
cookiePath는, 각 사용자에 대한 쿠키가 저장된 경로(path)를 의미한다.
Init(String UserKey)는, 사용자 키를 설정하고, 만약에 이미 해쉬가 존재한다면, 해당 파일을 읽은 후 디크립트한 정보를 역직렬화를 하여 정보를 복원하기 위한 것이다.
getValue(String key)는, 사용자 키에 해당하는 밸류를 얻기 위한 것이다.
setValue(String key, String Value)는, 사용자 키에 해당하는 밸류를 설정하기 위한 것이다.
writeCookie()는, 쿠키 해쉬맵을 직렬화하여 저장하기 위한 것으로, 저장하기 전에는 해당 정보를 사용자 키를 사용하여 인크립트 하여야 한다.
readCookie()는, 쿠키 파일을 읽은 후 역직렬화하여 맵을 만들기 위한 것으로, 해당 파일을 읽은 후에는 사용자 키를 이용하여 인크립트하여야 한다.
본 발명에 따른 클래스에 의하면, 쿠키는 스트링(string)으로 된 값/키 쌍(value/Key Pair)으로 저장되고, 사용자가 로그-인(Log-In) 시에 받아오는 키를 사용하여 인크립트/디크립트(encrypt/decrypt)함으로써 해당 사용자만 접근할 수 있도록 할 수 있다.
도 6은 본 발명의 일실시 예에 따른 저장 프록시를 설명하기 위해 도시한 것이다.
도 6을 참조하면, 본 발명에 따른 쿠키는, ACAP_COOKIE라는 저장 프록시(storage proxy)를 사용하여 저장한다. 이하 본 명세서에서는 저장 프록시의 기능, 함수 등과 관련하여 설명의 편의를 위해 예를 들어, OCAP의 저장 패키지(Storage package) 부분을 차용하고, 여기에서 상세한 설명은 생략한다.
저장 패키지는 다수의 인터페이스들을 가지나, 본 발명과 관련하여 특히, 저장 디바이스에 대한 로지컬 볼륨을 표현하기 위한 LogicalStorageVolume 인터페이스와 퍼시스턴트 저장 디바이스(persistent storage device)를 표현하기 위한 StorageProxy 인터페이스를 위주로 설명한다.
저장 디바이스에 해당하는 각 저장 프록시는, 로지컬 저장 볼륨들(LSVs)을 포함할 수 있다. 즉, 각 저장 프록시는, 각각의 사용자 ID(User 1, User 2)에 해당하는 로지컬 저장 볼륨(LSV)을 가진다. 여기에서, 상기 각 로지컬 저장 볼륨(LSV)은 예를 들어, /<org_id>/<app_id>/<uid1>or<uid2> 디렉토리(directory)에 생성되고, 각 어플리케이션에 읽기/쓰기 기능만 승인할 수 있다. 그리고 상기 각 쿠키는 cookiemap.cookie 파일(file)에 저장된다.
도 7은 본 발명의 일실시 예에 따른 쿠키 저장 과정을 설명하기 위해 도시한 순서도이다.
도 7을 참조하면, 사용자는 어플리케이션을 실행시키기 위해 예를 들어, 로그-인(Log-in)과 같은 과정을 통해 필요한 정보를 입력한다(S701).
상기 S701 단계를 통해 어플리케이션은 사용자가 입력한 사용자 정보의 저장과 관련하여, 로그-인 서버로부터 쿠키 키 또는 사용자 키를 수신한다(S702).
어플리케이션은 상기 수신한 사용자 키를 (휘발성) 메모리에 저장한다(S703).
S703 단계를 거쳐 어플리케이션은 사용자 키가 메모리에 저장되면, ACAP_Cookie 오브젝트를 생성하여 해당 오브젝트를 직렬화하고 상기 수신한 사용자 키를 이용하여 인크립트 한다. 어플리케이션은 상기 인크립트 후에 사용자 별로 분류된 로지컬 저장 볼륨(LSV)에 상기 S701 단계에서 사용자가 입력한 사용자 정보가 쿠키 형태로 저장한다(S704). 여기에서, 상기 로지컬 저장 볼륨(LSV)의 Path는 볼 륨의 절대적인 경로를 의미하고, 저장 프록시 없이 모든 로지컬 저장 볼륨(LSV) 인스턴스들을 거쳐 유일한 경로일 수 있으며 예를 들어, “~/OCAP_LSV/user1”일 수 있고, Owner는 예를 들어, 수신기일 수 있고, ExtendedFileAccessPermission은 해당 사용자 이외의 다른 사용자에 의한 액세스를 금지하기 위해 예를 들어, “동적 설정 불가”일 수 있다.
도 8은 본 발명의 일실시 예에 따라 도 7에서 저장된 사용자 정보를 이용하는 과정을 설명하기 위해 도시한 순서도이다.
미들웨어는 해당 어플리케이션이 로지컬 저장 볼륨(LSV)에 퍼미션 요청 파일에 의해 퍼시스턴트 저장 액세스 권한이 있는지 판단한다(S801).
미들웨어는 상기 S801 단계 판단 결과, 만약 해당 어플리케이션이 퍼미션 요청 파일에 의해 퍼시스턴트 저장 액세스 권한이 없다면, 해당 어플리케이션의 로지컬 저장 볼륨(LSV)에 대한 액세스를 불가한다(S802).
다만, 미들웨어는 상기 S801 단계 판단 결과, 만약 해당 어플리케이션이 퍼미션 요청 파일에 의해 퍼시스턴트 저장 액세스 권한이 있다면, 해당 어플리케이션의 로지컬 저장 볼륨(LSV)에 대한 액세스를 허용한다. 따라서, 미들웨어는 ACAP_Cookie 저장 프록시를 얻는다(get)(S803). 여기에서, 상기 저장 프록시를 얻기 위해 미들웨어는 getStorageProxy() 함수(method)를 호출할 수 있다. 상기 호출에 대해 어플리케이션은 저장 프록시를 포함하는 값을 리턴(return)할 수 있다.
미들웨어는 상기 리턴된 저장 프록시에 따라 로지컬 저장 볼륨(LSV)을 액세스한다(S804).
미들웨어는 상기 로지컬 저장 볼륨(LSV)을 액세스하여 해당 사용자에 대한 사용자 정보가 저장되었는지 판단한다(S805). 이를 위해, 미들웨어는 해당 사용자에 대한 사용자 정보가 저장된 볼륨의 절대적인 경로를 얻기 위하여 getPath() 함수를 사용하여 예를 들어, “~/OCAP_LSV/0x1000_0x1000_user 1” 즉, 상기 user 1에 해당하는 사용자에 대한 사용자 정보가 저장된 경로가 존재하는지 판단한다.
미들웨어는 상기 S805 단계 판단 결과, 해당 사용자에 대한 사용자 정보가 저장된 로지컬 저장 볼륨(LSV)이 존재하지 않으면, 해당 사용자와 관련하여 새로운 로지컬 저장 볼륨(LSV)을 생성하도록 제어한다(S806).
미들웨어는 상기 S805 단계 판단 결과, 해당 사용자에 대한 사용자 정보가 저장된 로지컬 저장 볼륨(LSV)이 존재한다면, 상기 로지컬 저장 볼륨(LSV) 내 해당 사용자에 대하여 기 저장된 사용자 정보를 추출하고 디코딩하여 이용할 수 있도록 한다(S807). 여기에서, 상기 디코딩 과정은 상기 도 7의 사용자 키를 이용하여 인크립트 되어 저장된 쿠키 정보를 디크립트하고, 디크립트된 사용자 정보를 역직렬화하여 오브젝트 형태로 만드는 과정도 포함한다. 결국, 미들웨어는 어플리케이션에서 저장된 쿠키를 ACAP_Cookie 인터페이스를 사용하여 읽기/쓰기(Read/Write)하거나 참조할 수 있다.
도 7 내지 8에서 사용자 키를 이용하여 직렬화된 쿠키 정보를 인크립트하거나 디크립트한다고 하였다. 그러나 만약 해당 사용자 키를 이용하여 인크립트하거나 디크립트하지 못한다면, exception을 리턴(throw)할 수 있다.
상술한 본 발명에 따르면, 어플리케이션 개발자가 필요한 정보를 디지털방송 수신기 세트(Set)에 간단한 쿠키 형태로 제공함으로써 데이터 방송 서비스를 위한 어플리케이션의 사용성을 크게 향상시키는 것이 가능하다. 또한, 암호화 등을 통하여 사용자 정보에 대한 액세스에 제한을 둠으로써 해당 사용자 정보의 보호도 기할 수 있다. 예를 들어, 사용자가 연동형 T-Commerce 어플리케이션에서 아이템(item)을 구매하기 위해서는 구매 단계와 그에 따른 결제 단계가 한번에 이루어져야 하며, 결제 중 연동형 어플리케이션이 해당 프로그램(program)의 종료, 서비스 변경(Service Change) 등의 이유로 종료되었을 때 사용자는 그 아이템(item)을 다시 구매하기 위하여 해당 연동형 어플리케이션이 다시 시작될 때까지 기다려야 하는 불편함이 있다. 이때, 해당 어플리케이션에서 세트에서 사용자 별로 간단한 쇼핑 카트(Shopping Cart)를 저장할 수 있다면 사용자는 연동형 어플리케이션 내에서는 쇼핑 카트에 추가만 하고 손이 많이 가는 결제 과정은 방송이 끝난 후 광고 중에 실행한다는 등의 시나리오(scenario)를 추가할 수 있고, 그에 따라 해당 어플리케이션에 대한 사용성 내지 접근 가능성이 증가할 것이다.
이상에서 본 발명의 바람직한 실시 예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
도 1은 본 발명과 관련하여 방송 수신기의 계층 구조에 대하여 도시한 구조도이고
도 2는 본 발명과 관련하여 어플리케이션의 라이프 싸이클(life cycle)의 일 예를 도시한 개념도이고,
도 3은 본 발명의 일실시 예에 따라 구성한 방송 수신기의 블록도이고,
도 4는 본 발명의 일실시 예에 따른 미들웨어의 구성과 어플리케이션 및 로지컬 저장 볼륨(LSV)와의 관계를 설명하기 위해 도시한 블록도이고,
도 5는 본 발명의 일실시예에 따른 쿠키 클래스를 도시한 것이고,
도 6은 본 발명의 일실시 예에 따른 저장 프록시를 설명하기 위해 도시한 것이고,
도 7은 본 발명의 일실시 예에 따른 쿠키 저장 과정을 설명하기 위해 도시한 순서도이고, 및
도 8은 본 발명의 일실시 예에 따라 도 7에서 저장된 사용자 정보를 이용하는 과정을 설명하기 위해 도시한 순서도이다.
* 도면의 주요 부호에 대한 설명
311; 튜너 312; 복조부
313; CA 314; 역다중화부
315; 미디어 디코더 321; 사용자 인터페이스
322; 저장매체 323; 네트워크 인터페이스
350; 프로세스 370; 어플리케이션
380; 미들웨어
Claims (18)
- 데이터 방송 서비스를 위한 어플리케이션(application)의 실행에 이용되는 각 사용자별 사용자 정보를 저장하는 방법에 있어서,사용자 정보를 입력받는 단계;상기 입력받은 사용자 정보를 특정 형태로 저장하는 오브젝트(object)를 생성하는 단계;상기 생성된 오브젝트를 직렬화(serialize)하고, 직력화된 오브젝트 데이터(object data)의 암호화(encryption)를 위한 키(key)를 수신하는 단계; 및상기 수신되는 키를 이용하여 상기 직렬화된 오브젝트 데이터를 암호화(encrypt)하고, 암호화된 오브젝트 데이터를 로지컬 저장 볼륨(Logical Storage Volume; LSV)에 저장하는 단계;를 포함하여 이루어지는 것을 특징으로 하는 방법.
- 제1항에 있어서,상기 수신되는 키를 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제2항에 있어서,상기 특정 형태는 쿠키(Cookie) 형태를 포함하는 것을 특징으로 하는 방법.
- 제2항에 있어서,상기 해당 로지컬 저장 볼륨(LSV)은,각 사용자별로 구분되는 유일한 경로(path)를 설정하는 것을 특징으로 하는 방법.
- 제4항에 있어서,상기 로지컬 저장 볼륨(LSV)은,각 경로에 대하여 해당 경로의 사용자 이외의 다른 사용자의 접근을 제한하기 위해 ExtendedFileAccessPermission은 동적 설정이 불가능하도록 설정(set)하는 것을 특징으로 하는 방법.
- 제1항에 있어서,상기 사용자 정보는,해당 어플리케이션에 의해 정의되는 것으로, 로그-인(Log-in) 정보를 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서,상기 오브젝트는 맵 오브젝트(Map object)를 포함하고,상기 맵 오브젝트는 해쉬 맵(Hash Map)을 포함하는 것을 특징으로 하는 방법.
- 제1항에 의해 로지컬 저장 볼륨(LSV)에 저장된 쿠키 형태의 사용자 정보를 이용하여 데이터 방송 서비스를 위한 어플리케이션을 실행하는 방법에 있어서,해당 사용자에 대한 쿠키가 저장된 경로에 대한 어플리케이션의 액세스 권한이 있으면, 저장 프록시(Storage Proxy)를 얻는(get) 단계; 및해당 사용자에 대한 쿠키가 저장된 경로가 생성되었으면, 해당 로지컬 저장 볼륨(LSV)를 액세스하여 사용자 정보를 디코딩하는 단계;를 포함하여 이루어지는 것을 특징으로 하는 방법.
- 제8항에 있어서,상기 해당 사용자에 대한 쿠키가 저장된 경로에 대한 어플리케이션의 액세스 권한이 있는지 판단하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제9항에 있어서,상기 판단 결과 어플리케이션의 액세스 권한이 없으면, 해당 로지컬 저장 볼륨(LSV) 내 쿠키에 대한 어플리케이션의 액세스를 거부하는 것을 특징으로 하는 방법.
- 제9항에 있어서,상기 쿠키가 저장된 경로에 대한 어플리케이션의 액세스 권한 여부 판단은,퍼미션 요청 파일(permission request file)에 의해 인가된 퍼시스턴트 저장 액세스(persistence storage access)를 소유 여부로 판단하는 것을 특징으로 하는 방법.
- 제9항에 있어서,상기 해당 사용자에 대한 쿠키가 저장된 경로가 기 생성되었는지 판단하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제12항에 있어서,상기 판단 결과 해당 사용자에 대한 쿠키가 저장된 경로가 기 생성되지 않았으면, 로지컬 저장 볼륨(LSV)에 새로운 경로를 생성하는 것을 특징으로 하는 방법.
- 제8항에 있어서,상기 디코딩 단계는,기 암호화(encryption)된 오브젝트 데이터를 기 수신한 키에 근거하여 복호화(descryption)하는 단계와;상기 복호화된 오브젝트 데이터를 역직렬화(deserialize)하여 오브젝트를 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제14항에 있어서,상기 오브젝트는 맵 오브젝트를 포함하고,상기 맵 오브젝트는 해쉬 맵을 포함하는 것을 특징으로 하는 방법.
- 어플리케이션 실행에 이용되는 사용자 정보에 대한 사용자의 입력을 수신하는 사용자 인터페이스부;상기 사용자 인터페이스부로부터 수신되는 사용자의 입력에 근거하여 해당 어플리케이션의 실행을 제어하는 프로세서부; 및상기 프로세서부의 제어에 따라 데이터를 디코딩하는 디코더를 포함하여 구성하되,상기 프로세서부는 어플리케이션(application)과 미들웨어(middleware)를 포함하고,상기 어플리케이션은 상기 수신되는 사용자의 입력을 키(key)를 이용하여 특정 형태로 로지컬 저장 볼륨(LSV) 내 해당 사용자에 대한 경로(path)를 생성하여 저장하고,상기 미들웨어는 상기 어플리케이션의 액세스 요청에 따라 해당 사용자에 대한 상기 경로가 생성되었는지 판단하고, 생성되었으면 상기 어플리케이션이 상기 경로에 대한 액세스 권한 여부를 판단하여 액세스 권한이 있으면 상기 경로를 액세스하여 기 저장된 사용자의 입력 정보를 디코딩하도록 제어하는 것을 특징으로 하는 디지털 방송 수신기.
- 제16항에 있어서,상기 미들웨어는,상기 경로가 생성되지 않았으면, 상기 로지컬 저장 볼륨(LSV) 내에 새로운 경로를 생성하도록 제어하는 것을 특징으로 하는 디지털 방송 수신기.
- 제16항에 있어서,상기 미들웨어는,상기 어플리케이션의 액세스 권한이 없으면, 해당 액세스의 상기 경로에 대한 액세스를 거부하도록 제어하는 것을 특징으로 하는 디지털 방송 수신기.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080133344A KR20100074818A (ko) | 2008-12-24 | 2008-12-24 | 데이터 방송 서비스 제공 방법 및 그를 위한 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080133344A KR20100074818A (ko) | 2008-12-24 | 2008-12-24 | 데이터 방송 서비스 제공 방법 및 그를 위한 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100074818A true KR20100074818A (ko) | 2010-07-02 |
Family
ID=42637304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080133344A KR20100074818A (ko) | 2008-12-24 | 2008-12-24 | 데이터 방송 서비스 제공 방법 및 그를 위한 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100074818A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160119865A (ko) * | 2015-02-10 | 2016-10-14 | 소니 주식회사 | 송신 장치, 송신 방법, 수신 장치, 및 수신 방법 |
US20190392167A1 (en) * | 2017-01-19 | 2019-12-26 | Creator's Head Inc. | Information control program, information control system, and information control method |
-
2008
- 2008-12-24 KR KR1020080133344A patent/KR20100074818A/ko not_active Application Discontinuation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160119865A (ko) * | 2015-02-10 | 2016-10-14 | 소니 주식회사 | 송신 장치, 송신 방법, 수신 장치, 및 수신 방법 |
KR20170106287A (ko) * | 2015-02-10 | 2017-09-20 | 소니 주식회사 | 송신 장치, 송신 방법, 수신 장치, 및 수신 방법 |
US11444885B2 (en) | 2015-02-10 | 2022-09-13 | Saturn Licensing Llc | Transmission device, transmission method, reception device, and reception method |
US11956159B2 (en) | 2015-02-10 | 2024-04-09 | Saturn Licensing Llc | Transmission device, transmission method, reception device, and reception method |
US20190392167A1 (en) * | 2017-01-19 | 2019-12-26 | Creator's Head Inc. | Information control program, information control system, and information control method |
US11734443B2 (en) * | 2017-01-19 | 2023-08-22 | Creator's Head Inc. | Information control program, information control system, and information control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4895424B2 (ja) | 複数ユーザ用マルチメディア・ターミナル | |
CA2508747C (en) | Apparatus and methods for implementation of network software interfaces | |
US7984478B2 (en) | Method and apparatus for a receiver/decoder | |
US20090106801A1 (en) | Content processing device and content processing method | |
US20080172712A1 (en) | Multimedia data transmitting apparatus, multimedia data receiving apparatus, multimedia data transmitting method, and multimedia data receiving method | |
KR102550672B1 (ko) | 영상처리장치 및 그 제어방법 | |
WO2010109865A1 (ja) | データ送信装置、データ受信装置、データ送信方法およびデータ受信方法 | |
US10162944B2 (en) | Library style media DRM APIs in a hosted architecture | |
AU2002334278A1 (en) | Method and apparatus for a receiver/decoder | |
CA2341248C (en) | Application data table for a multiservice digital transmission system | |
KR20040082381A (ko) | 데이터 처리 | |
JPWO2007072680A1 (ja) | データ出力装置、機器制御装置およびマルチメディア配信システム | |
CA2634024A1 (en) | Broadcast receiving apparatus, video storing apparatus, and multimedia delivering system | |
US20090044281A1 (en) | Java conditional access apparatus | |
KR20100074818A (ko) | 데이터 방송 서비스 제공 방법 및 그를 위한 장치 | |
US9681178B2 (en) | Distributed presentation software for multiple instantiations in home network | |
JP5941356B2 (ja) | 放送通信連携受信装置、アプリケーション認証プログラム及び放送通信連携システム | |
KR100903106B1 (ko) | 방송 콘텐츠 보호를 위한 디지털 방송 수신 장치 및 그방법 | |
KR100750141B1 (ko) | 디지털 데이터 방송 수신기의 해상도 제어 방법, 장치 및그 디지털 데이터 방송 수신기 | |
KR101549008B1 (ko) | 디지털 방송 장치에서 입출력 단자의 상태 관리 방법 및 장치 | |
KR101586315B1 (ko) | 방송 수신기 및 네트워크 장치 모니터링 방법 | |
KR20100056173A (ko) | 화면 제어 방법 및 그 장치 | |
WO2020201291A1 (en) | Controlling connected tv with a mobile device | |
KR20100056172A (ko) | 애플리케이션 실행 방법 및 장치 | |
KR20090126769A (ko) | 방송 수신기 및 방송 데이터 수신 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |