KR101432989B1 - 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체 - Google Patents
분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체 Download PDFInfo
- Publication number
- KR101432989B1 KR101432989B1 KR1020100029969A KR20100029969A KR101432989B1 KR 101432989 B1 KR101432989 B1 KR 101432989B1 KR 1020100029969 A KR1020100029969 A KR 1020100029969A KR 20100029969 A KR20100029969 A KR 20100029969A KR 101432989 B1 KR101432989 B1 KR 101432989B1
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- code block
- program
- execution
- content
- 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
- H04N21/4627—Rights management associated to the content
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것으로, 실행형 컨텐츠에 대한 호스트 단말(host terminal)과 저장장치 간의 분리 실행에 필요한 분리 실행 대상 코드 블록을 저장장치에 안정적으로 제공하기 위한 것이다. 본 발명에 따르면, 실행형 컨텐츠의 분리 실행 대상 코드 블록은 저장장치용 프로그램에 포함된 형태로 저장장치에 선발급 또는 후발급 형태로 제공된다. 저장장치가 접속한 호스트 단말로부터 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램의 설치 요청을 수신한다. 저장장치가 저장장치용 프로그램을 설치하는 과정에서 저장장치용 프로그램에서 분리 실행 대상 코드 블록을 추출한다. 그리고 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장한다.
Description
본 발명은 컨텐츠의 복제 방지 기술에 관한 것으로, 더욱 상세하게는 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행에 필요한 분리 실행 대상 코드 블록을 저장장치용 프로그램에 포함시켜 저장장치에 제공하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것이다.
일반적으로 호스트 단말은 운영체제 위에 복수의 컨텐츠가 설치된다. 컨텐츠는 디지털 형태로 저장되고 유통되는 디지털 저작물로서, 소프트웨어, 응용프로그램, 멀티미디어 데이터 등을 포함한다. 예컨대 사용자는 호스트 단말에 설치된 각종 컨텐츠를 이용하여 문서편집, 영상편집, 게임 등을 수행할 수 있다.
이와 같은 컨텐츠는, 무료로 사용할 수 있는 컨텐츠도 있지만, 온오프라인에서 유료로 판매되고 있다. 사용자는 필요한 컨텐츠를 구매하고, 구매한 컨텐츠를 호스트 단말에 설치함으로써 사용하게 된다. 컨텐츠는 인증번호를 통한 인증을 통과하게 되면, 호스트 단말에 설치된다. 통상적으로 인증번호는 구매한 컨텐츠와 함께 제공된다.
이와 같은 인증번호를 이용한 인증 방식의 컨텐츠는 해킹에 쉽게 노출되는 문제점을 안고 있다. 즉 해당 프로그램의 인증번호가 해킹되거나, 인증을 우회할 수 있는 코드가 해당 컨텐츠에 추가될 경우, 해당 컨텐츠를 구매하지 않은 사람들도 복제된 컨텐츠를 호스트 단말에 설치하여 무단으로 사용할 수 있다.
이와 같은 컨텐츠의 무단 사용으로 인한 컨텐츠 제공자(content provider; CP)의 피해가 증가하고 있는 실정이다. 컨텐츠의 무단 사용은 컨텐츠 제공자의 컨텐츠의 개발 의욕을 떨어뜨리는 요인으로 작용하고 있다.
또한 컨텐츠 제공자는 개발한 컨텐츠의 무단 복제를 억제하기 위한 보안 방법에도 주의를 기울어야 하기 때문에, 컨텐츠 개발에 많은 비용이 소요되어 컨텐츠 제공자에게 부담으로 작용하고 있는 실정이다.
따라서 본 발명의 목적은 컨텐츠의 복제를 억제하기 위해서, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 저장장치로 제공할 수 있는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.
본 발명의 다른 목적은 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 서버, 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 것을 억제할 수 있는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.
본 발명의 또 다른 목적은 저장장치에 저장장치용 프로그램을 설치하는 과정에서 분리 실행 대상 코드 블록을 저장장치로 제공할 수 있도록 분리 실행 대상 코드 블록을 저장장치용 프로그램에 포함시켜 저장장치로 제공하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.
상기 목적을 달성하기 위하여, 본 발명은 호스트 단말 및 저장장치를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템을 제공한다. 호스트 단말은 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 통신인터페이스로 연결된 저장장치로 전송한다. 그리고 저장장치는 호스트 단말로부터 저장장치용 프로그램을 수신하고, 수신한 저장장치용 프로그램을 설치하는 과정에서 저장장치용 프로그램에서 분리 실행 대상 코드 블록을 추출하고, 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장한다.
본 발명은 또한, 송수신부, 데이터베이스부 및 서버제어부를 포함하는 분리 실행 기반의 DRM 서버를 제공한다. 송수신부는 컨텐츠 등록 서버와 통신을 수행한다. 데이터베이스부는 저장장치용 프로그램을 저장한다. 그리고 서버제어부는 송수신부를 통하여 컨텐츠 등록 서버로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록을 수신하고, 수신한 분리 실행 대상 코드 블록을 저장장치용 프로그램에 포함시킨다.
본 발명은 또한, 저장부, 통신인터페이스부, 저장장치용 프로그램 처리부 및 분리 실행 대상 코드 블록 처리부를 포함하는 분리 실행 기반의 저장장치를 제공한다. 통신인터페이스부는 호스트 단말과 통신을 수행하며, 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램의 설치 요청을 수신한다. 저장장치용 프로그램 처리부는 통신인터페이스부로부터 설치 요청을 전달받아 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 설치하는 과정에서 저장장치용 프로그램에서 분리 실행 대상 코드 블록을 추출한다. 그리고 분리 실행 대상 코드 블록 처리부는 저장장치용 프로그램 처리부로부터 추출된 분리 실행 대상 코드 블록을 전달받아 실행 형태로 저장부에 저장한다.
본 발명에 따른 분리 실행 기반의 저장장치에 있어서, 통신인터페이스부는 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 수신하여 저장장치용 프로그램 처리부로 전달할 수 있다.
본 발명에 따른 분리 실행 기반의 저장장치에 있어서, 저장부에 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램이 기 저장되어 있다.
본 발명에 따른 분리 실행 기반의 저장장치에 있어서, 통신인터페이스부를 통하여 호스트 단말에 접속하면 저장장치용 프로그램 처리부는 기 저장된 저장장치용 프로그램의 설치 여부를 호스트 단말로 질의하고, 질의에 대한 응답으로 설치 요청을 수신하면 기 저장된 저장장치용 프로그램에서 분리 실행 대상 코드 블록을 추출할 수 있다.
본 발명은 또한, 저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램의 설치 요청을 수신하는 수신 단계, 저장장치가 저장장치용 프로그램을 설치하는 과정에서 저장장치용 프로그램에서 분리 실행 대상 코드 블록을 추출하는 추출 단계, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 제공한다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 수신 단계에서, 저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 수신할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 수신 단계 이전에 수행되는, 저장장치가 호스트 단말에 접속하면, 저장장치에 기 저장된 실행형 컨텐츠의 분리 실행 대상 코드 블록의 설치 여부를 호스트 단말에 질의하는 단계를 더 포함할 수 있다. 이때 수신 단계에서 저장장치가 질의에 대한 응답으로 호스트 단말로부터 설치 요청을 수신할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 수신 단계와 추출 단계 사이에 수행되는, 저장장치가 기 저장된 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 호출하는 호출 단계를 더 포함할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장 단계는, 저장장치가 추출한 분리 실행 대상 코드 블록을 저장할 만큼 남은 메모리의 용량이 충분한 지를 확인하는 단계, 확인 결과 충분한 경우, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장하는 단계를 포함할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 확인 결과 부족한 경우, 저장장치가 메모리 부족 메시지를 호스트 단말로 전송하는 단계, 저장장치가 호스트 단말로부터 메모리 확보 요청 메시지를 수신하여 부족한 메모리 용량을 확보하는 단계, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장하는 단계를 더 포함할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 메모리 확보 요청 메시지는 저장장치에 저장된 정보에 대한 삭제 요청 메시지를 포함할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 메모리 확보 요청 메시지는 설치할 저장장치용 프로그램에 대응하는 기 저장된 저장장치용 프로그램의 삭제 요청 메시지를 포함할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장장치용 프로그램은 인스톨(install) 또는 갱신(update)용 프로그램을 포함할 수 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 분리 실행 대상 코드 블록은 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되어 있다.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장장치가 자바 카드 플랫폼(Java Card Platform)을 기반으로 하는 경우, 저장장치용 프로그램은 애플릿(applet)이며, 분리 실행 대상 코드 블록은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있다.
그리고 본 발명은 또한, 전술된 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공한다.
따라서 본 발명에 따르면, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 저장장치용 프로그램에 포함시켜 저장장치로 제공할 수 있다.
그리고 저장장치용 프로그램에 포함되어 제공된 분리 실행 대상 코드 블록은 해당 저장장치용 프로그램을 설치하는 과정에서 분리되어 메모리에 실행 형태로 저장할 수 있기 때문에, 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 서버, 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다. 즉 분리 실행 대상 코드 블록은 저장장치용 프로그램에 포함되어 제공되기는 하지만, 프로그램 형태가 아닌 바이너리 코드 형태로 저장장치에 제공되기 때문에, 분리 실행 대상 코드 블록을 메모리에 저장하는 과정에서 속도 지연이나 부하가 발생되는 것을 억제할 수 있다.
도 1은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템을 포함하는 디지털 저작권 관리(digital rights management; DRM) 시스템을 보여주는 블록도이다.
도 2는 실행형 컨텐츠의 데이터 구조를 보여주는 블록도이다.
도 3은 실행형 컨텐츠에서 분할된 분리 실행 대상 코드 블록과, 서비스용 컨텐츠의 구성을 보여주는 블록도이다.
도 4는 도 1의 DRM 서버의 구성을 보여주는 블록도이다.
도 5는 도 1의 컨텐츠 분배 서버의 구성을 보여주는 블록도이다.
도 6은 도 1의 호스트 단말의 구성을 보여주는 블록도이다.
도 7은 도 1의 저장장치의 구성을 보여주는 블록도이다.
도 8은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 일 예에 따른 흐름도이다.
도 9는 도 8의 분리 실행 대상 코드 블록을 저장하는 단계에 따른 상세흐름도이다.
도 10은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 다른 예에 따른 흐름도이다.
도 2는 실행형 컨텐츠의 데이터 구조를 보여주는 블록도이다.
도 3은 실행형 컨텐츠에서 분할된 분리 실행 대상 코드 블록과, 서비스용 컨텐츠의 구성을 보여주는 블록도이다.
도 4는 도 1의 DRM 서버의 구성을 보여주는 블록도이다.
도 5는 도 1의 컨텐츠 분배 서버의 구성을 보여주는 블록도이다.
도 6은 도 1의 호스트 단말의 구성을 보여주는 블록도이다.
도 7은 도 1의 저장장치의 구성을 보여주는 블록도이다.
도 8은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 일 예에 따른 흐름도이다.
도 9는 도 8의 분리 실행 대상 코드 블록을 저장하는 단계에 따른 상세흐름도이다.
도 10은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 다른 예에 따른 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명하자고 한다. 여기서 실행형 컨텐츠는 프로세서를 구비한 호스트 단말 또는 저장장치에서 실행할 수 있는 컨텐츠로서, 예컨대 응용프로그램, 게임 프로그램, 각종 소프트웨어를 포함할 수 있다.
본 발명의 실시예에 따른 분리 실행 기반의 디지털 저작권 관리(digital rights management; DRM) 시스템(100)은, 도 1 내지 도 3에 도시된 바와 같이, 네트워크(60)를 매개로 연결된 컨텐츠 제공 단말(10), 컨텐츠 등록 서버(20), DRM 서버(40), 컨텐츠 분배 서버(50), 호스트 단말(70)과, 호스트 단말(70)에 통신인터페이스(90)를 매개로 연결된 저장장치(80)를 포함하여 구성된다. 특히 분리 실행 기반의 DRM 시스템(100)은 분리 실행 대상 코드 블록(34)을 저장장치(80)에 제공하는 코드 블록 제공 시스템을 포함한다. 코드 블록 제공 시스템은 호스트 단말(70) 및 저장장치(80)를 포함하여 구성된다.
여기서 '분리 실행'은 실행형 컨텐츠(30)를 실행하는 데 있어서 호스트 단말(70)과 저장장치(80)가 서로 연동되어 실행하는 것을 의미한다. 특히 분리 실행을 구현하기 위해서, 원본 실행형 컨텐츠(30)의 코드 영역(31)에서 분리된 일부 코드 블록(이하 '분리 실행 대상 코드 블록(34)'이라 함)은 저장장치(80)에 설치되고, 분리 실행 대상 코드 블록(34)이 제거된 실행형 컨텐츠(이하 '서비스용 컨텐츠(32)'라 함)는 호스트 단말(70)에 설치된다. 따라서 분리 실행 기반의 실행형 컨텐츠(30)를 실행하고자 할 경우에, 호스트 단말(70)은 서비스용 컨텐츠(32) 실행 중 분리 실행 대상 코드 블록(34)이 제거된 부분에 대한 출력값을 저장장치(80)에 요청하여 반환받는 형태로 해당 실행형 컨텐츠(30)를 실행한다. 이때 분리 실행 대상 코드 블록(34)은 저장장치(80)에서 사용되는 코드 블록으로 변환되어 저장장치(80)에 제공될 수 있다.
네트워크(60)는 컨텐츠 제공 단말(10), 컨텐츠 등록 서버(20), DRM 서버(40), 컨텐츠 분배 서버(50) 및 호스트 단말(70) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행한다. 네트워크(60)는 IP를 통하여 대용량 데이터의 송수신 서비스 및 끊김없는 데이터 서비스를 제공하는 IP망으로, IP를 기반으로 서로 다른 망을 통합한 IP망 구조인 ALL-IP망일 수 있다. 또한 네트워크(60)는 유선통신망, 이동통신망, WiBro(Wireless Broadband)망, HSDPA(High-Speed Downlink Packet Access)망, 위성통신망 또는 기타 널리 공지되었거나 향후 개발될 유무선 또는 이들의 결합망을 포함한다.
컨텐츠 제공 단말(10)은 컨텐츠 제공자가 운용하는 단말로서, 네트워크(60)를 통하여 컨텐츠 등록 서버(20)와 통신을 수행하고, 컨텐츠 제공자가 개발한 실행형 컨텐츠(30)를 저장한다.
컨텐츠 등록 서버(20)는 네트워크(60)를 매개로 컨텐츠 제공 단말(10) 및 DRM 서버(40)와 통신을 수행한다. 컨텐츠 등록 서버(20)는 네트워크(60)를 통한 컨텐츠 제공자의 요청에 따라 컨텐츠 제공 단말(10)로부터 실행형 컨텐츠(30)를 수신하여 등록한다. 이때 컨텐츠 등록 서버(20)는 실행형 컨텐츠(30)를 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)으로 분리하여 등록한다. 이때 실행형 컨텐츠(30)의 분리는 컨텐츠 제공 단말(10)에서 수행될 수도 있고, 컨텐츠 등록 서버(20)에서 수행될 수도 있다.
DRM 서버(40)는 네트워크(60)를 통하여 컨텐츠 등록 서버(20) 및 컨텐츠 분배 서버(50)와 통신을 수행한다. DRM 서버(40)는 컨텐츠 등록 서버(20)로부터 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. DRM 서버(40)는 컨텐츠 분배 서버(50)를 통한 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청에 따라 필요한 정보, 예컨대 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42; Right Object)를 컨텐츠 분배 서버(50)로 전송한다. 즉 DRM 서버(40)는 서비스용 컨텐츠(32)를 CEK(Contents Encryption Key)로 암호화하고, DCF(DRM protected Contents Format)로 포맷팅하여 저장한다. 사용자의 구매 요청이 있는 경우, DRM 서버(40)는 해당 실행형 컨텐츠(30)의 DCF를 컨텐츠 분배 서버(50)로 전송하고, 사용자 개인키(private key)로 CEK를 암호화하여 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다. 특히 DRM 서버(40)는 분리 실행 대상 코드 블록(34)을 저장장치용 프로그램(52)에 포함시켜 컨텐츠 분배 서버(50)에 제공할 수 있다.
컨텐츠 분배 서버(50)는 네트워크(60)를 통하여 DRM 서버(40) 및 호스트 단말(70)과 통신을 수행한다. 컨텐츠 분배 서버(50)는 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청을 DRM 서버(40)로 전달하고, 해당 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 DRM 서버(40)로부터 수신한다. 이때 분리 실행 대상 코드 블록(34)은 저장장치용 프로그램(52)에 포함된 형태로 제공될 수 있다.
통신인터페이스(90)는 서로 근접한 호스트 단말(70)과 저장장치(80) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행한다. 통신인터페이스(90)는 USB, USB2, Serial/Parallel Port, Ethernet, TCP/IP, 통신 케이블 등을 이용한 유선 통신망과, 근거리 무선통신망을 포함할 수 있다. 근거리 무선통신 방식으로는 블루투스(Bluetooth), 지그비(zigbee), 루비(Rubee), 적외선데이터통신(IrDA; Infrared Data Association), 초광대역방식(UWB; Ultra Wide Broadband) 등이 사용될 수 있다.
호스트 단말(70)은 네트워크(60)를 매개로 컨텐츠 분배 서버(50)와 통신을 수행하고, 통신인터페이스(90)를 매개로 저장장치(80)와 통신을 수행한다. 호스트 단말(70)은 사용자의 선택 신호에 따른 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 컨텐츠 분배 서버(50)로 전달한다. 호스트 단말(70)은 컨텐츠 분배 서버(50)로부터 구매한 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32), 권리 객체(42) 및 저장장치용 프로그램(52)을 수신한다. 호스트 단말(70)은 수신한 정보 중 서비스용 컨텐츠(32)를 자신에게 설치한다. 호스트 단말(70)은 수신한 정보 중 권리 객체(42) 및 저장장치용 프로그램(52)은 저장장치(80)로 전달한다. 이때 호스트 단말(70)은 실행형 컨텐츠(30)의 실행이 가능한 독립된 CPU를 가진 컴퓨팅 장치, 예컨대 PC, 노트북, 워크스테이션 등을 통칭한다. 호스트 단말(70)은 다수의 사용자들에 의해 접근이 자유로운 공용 컴퓨터를 포함할 수 있다.
그리고 저장장치(80)는 통신인터페이스(90)를 매개로 호스트 단말(70)에 연결되며, 저장장치(80)의 구동에 필요한 저장장치용 프로그램(52)과, 호스트 단말(70)에 설치된 서비스용 컨텐츠(32)에 대한 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 저장한다. 저장장치(80)는 실행형 컨텐츠(30) 실행시 호스트 단말(70)의 요청에 따라 분리 실행 대상 코드 블록(34)에 대한 연산을 수행하여 출력값을 호스트 단말(70)로 반환한다. 특히 저장장치(80)는 분리 실행 대상 코드 블록(34)을 저장장치용 프로그램(52)에 포함된 형태로 제공받는 경우, 저장장치용 프로그램(52)을 설치할 때 해당 분리 실행 대상 코드 블록(34)을 추출하여 메모리에 저장할 수 있다. 분리 실행 대상 코드 블록(34)을 포함하는 저장장치용 프로그램(52)은 선발급으로 저장장치(80)에 저장된 형태로 제공되거나, 후발급으로 호스트 단말(70)로부터 저장장치(80)로 제공될 수 있다. 이때 저장장치(80)는 프로세서를 구비한 저장장치로서, USB 메모리, 플래시 메모리 카드, 이에 상응하는 각종 이동식, 휴대식 저장매체(예컨대, SD(Secure Digital) 메모리 카드, microSD 메모리 카드, ISO 7816 표준의 저장장치 등)를 통칭한다.
이와 같이 호스트 단말(70)에 통신인터페이스(90)를 매개로 저장장치(80)가 연결된 상태에서, 사용자가 호스트 단말(70)의 입력부, 예컨대 키보드, 마우스, 터치패드 등을 통하여 실행형 컨텐츠(30)의 실행을 요청하면, 호스트 단말(70)은 서비스용 컨텐츠(32)에 대한 실행을 시작한다. 호스트 단말(70)은 서비스용 컨텐츠(32)에 없는 코드에 대한 실행 요청을 저장장치(80)로 전달한다. 그리고 저장장치(80)는 실행 요청에 대응하는 분리 실행 대상 코드 블록(34)을 실행한 후 출력값을 호스트 단말(70)로 전달한다.
특히 본 발명에 따른 코드 블록 제공 시스템은 통신인터페이스(90)를 매개로 연결된 호스트 단말(70) 및 저장장치(80)를 포함하여 구성되며, 컨텐츠 분배 서버(50)를 더 포함하여 구성될 수 있다.
컨텐츠 분배 서버(50)는 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 DRM 서버(40)로부터 수신하여 호스트 단말(70)로 전달한다. 이때 저장장치용 프로그램(52)은 DRM 서버(40)로부터 수신하는 예를 개시하였지만 이것에 한정되는 것은 아니다. 예컨대 컨텐츠 분배 서버(50)는 DRM 서버(40)로부터 분리 실행 대상 코드 블록(34)을 수신하고, 수신한 분리 실행 대상 코드 블록(34)을 저장장치용 프로그램(52)에 포함시킬 수도 있다.
호스트 단말(70)은 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 컨텐츠 분배 서버(50)로부터 수신한다. 호스트 단말(70)은 해당 저장장치용 프로그램(52)을 통신인터페이스(90)로 연결된 저장장치(80)로 전송한다.
그리고 저장장치(80)는 호스트 단말(70)로부터 저장장치용 프로그램(52)을 수신한다. 저장장치(80)는 수신한 저장장치용 프로그램(52)을 설치하는 과정에서 저장장치용 프로그램(52)에서 분리 실행 대상 코드 블록(34)을 추출한다. 그리고 저장장치(80)는 추출된 분리 실행 대상 코드 블록(34)을 메모리에 저장한다. 이때 저장장치(80)는 추출된 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장할 수 있다.
이와 같이 본 실시예에 따른 코드 블록 제공 시스템은 실행형 컨텐츠(30)에 대한 호스트 단말(70)과 저장장치(80) 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록(34)을 저장장치용 프로그램(52)에 포함시켜 저장장치(80)로 제공할 수 있다.
그리고 저장장치용 프로그램(52)에 포함되어 제공된 분리 실행 대상 코드 블록(34)은 해당 저장장치용 프로그램(52)을 설치하는 과정에서 추출하여 메모리에 실행 형태로 저장할 수 있기 때문에, 분리 실행 대상 코드 블록(34)을 저장장치(80)로 제공하는 과정에서 호스트 단말(70) 및 저장장치(80) 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다.
이와 같은 본 실시예에 따른 코드 블록 제공 시스템에 대해서 구체적으로 설명하기에 앞서 분리 실행 기반의 실행형 컨텐츠(30)에 대해서 도 1 내지 도 3을 참조하여 설명하면 다음과 같다.
실행형 컨텐츠(30)는 복수 개의 파일, 예컨대 운영체제에서 제공하는 API(application program interface), 개발사에서 제공하는 API 또는 DLL(dynamic linking library)과 같은 파일을 포함한다. 이와 같은 복수의 파일을 포함하는 실행형 컨텐츠(30)는, 도 2에 도시된 바와 같이, 코드 영역(31)과 데이터 영역(33)으로 구분할 수 있다. 코드 영역(31)은 복수의 코드 블록을 포함하며, 분리 실행 대상 코드 블록(34)은 코드 영역(31)에서 추출된 복수의 코드 블록을 포함한다. 예컨대 분리 실행 대상 코드 블록(34)은 복수의 베이식 블록 그룹(37; basic block group)을 포함하며, 베이식 블록 그룹(37)은 복수의 베이식 블록(35; basic block)의 모임이다.
이때 베이식 블록(35)은 단일 입력(single input) 및 단일 출력(single output)의 속성을 갖는 명령어의 열(sequence of instruction)로서, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 코드 블록으로 정의할 수 있다. 즉 베이식 블록(35)은 항상 시작부터 끝까지 한번에 실행되는 연속적인 문장(코드의 모임)을 의미하며, 중간에 흐름 제어로 인해 실행이 중지되지 않는 문장 그룹이다.
서비스용 컨텐츠(32)는 분리 실행 대상 코드 블록(34)으로 추출된 베이식 블록 그룹(37)의 코드 영역에 스터브 코드(36)가 삽입된 코드 영역(31a)과, 데이터 영역(33)을 포함한다. 이때 스터브 코드(36)는 호스트 단말(70)과 저장장치(80) 간에 실행형 컨텐츠(30)에 대한 분리 실행을 수행할 때, 서비스 컨텐츠(32)에서 추출된 코드 영역과, 추출된 코드 영역에 해당하는 분리 실행 대상 코드 블록(34)을 연결한다. 즉 스터브 코드(36)는 실행형 컨텐츠(30)에 대한 분리 실행을 수행할 때, 추출된 코드 영역에서 저장장치(80)로 제어 신호를 전달한다. 제어 신호를 수신한 저장장치(80)는 제어 신호에 해당하는 분리 실행 대상 코드 블록(34)에 대한 연산을 수행하여 산출한 출력값을 호스트 단말(70)로 반환한다.
분리 실행 대상 코드 블록(34)은 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여 실행형 컨텐츠(30)의 코드 영역(31)에서 추출된 복수의 베이식 블록 그룹(37)을 포함한다. 즉 분리 실행 대상 코드 블록(34)은 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여 실행형 컨텐츠(30)의 코드 영역(31)에서 선정된 베이식 블록 그룹(37)으로, 선정된 베이식 블록 그룹(37)들 중에서 적어도 하나가 분리 실행 대상 코드 블록(34)으로 추출될 수 있다. 분리 실행 대상 코드 블록(34)이 추출된 부분에는 스터브 코드(36)가 삽입된다. 후술되겠지만 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여, 실행형 컨텐츠(30)는 분리 실행 대상 코드 블록(34)과, 분리 실행 대상 코드 블록(34)이 추출된 서비스용 컨텐츠(32)로 분할된다.
분리 실행 대상 코드 블록(34)은 저장장치용 코드 블록으로 변환되어 저장장치(80)에 저장된 형태로 제공되거나 다운로드 형태로 저장장치(80)에 제공될 수 있다. 분리 실행 대상 코드 블록(34)은 전술된 바와 같이 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)이다. 분리 실행 대상 코드 블록(34)은 분리 실행 대상 코드 블록(34)의 시작점(entry point)을 통한 제어 신호의 진입 및 베이식 블록(35) 간의 제어 신호의 이동은 허용하지만, 분리 실행 대상 코드 블록(34)의 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 없는 서로 관련된 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)으로 선택하는 것이 바람직하다.
이유는 베이식 블록 그룹(37) 중에서 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹(37)을 분리 실행 대상 코드 블록(34)으로 추출할 경우, 해당 분리 실행 대상 코드 블록(34)을 추출한 후 삽입되는 스터브 코드(36)에 시작 부분이 아닌 중간으로 제어 신호가 진입할 수 있다. 이 경우 스터브 코드(36)는 해당 제어 신호에 대한 처리를 수행하지 못하여 해당 실행형 컨텐츠(30)의 실행이 중지되거나 에러가 발생될 수 있기 때문이다. 즉 스터브 코드(36)은 첫 5Byte를 제외한 나머지 영역에는 NOP(no-operation instruction)와 같은 쓰레기 값이 들어 있기 때문에, 쓰레기 값이 들어 있는 영역으로 제어 신호가 진입할 경우 에러가 발생될 수 있다. 바꾸어 말하면, 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹(37)은 분리 실행을 수행할 때, 오류를 발생시킬 수 있는 확률이 높기 때문에, 분리 실행 대상 코드 블록(34)으로는 적합하지 않다.
본 실시예에 따른 코드 블록 제공 시스템의 DRM 서버(40)는, 도 1 내지 도 4에 도시된 바와 같이, 제1 송수신부(41), 제1 데이터베이스부(43) 및 제1 서버제어부(45)를 포함하여 구성된다.
제1 송수신부(41)는 네트워크(60)를 통하여 컨텐츠 등록 서버(20) 및 컨텐츠 분배 서버(50)와 통신을 수행한다. 제1 송수신부(41)는 컨텐츠 등록 서버(20)로부터 분리 실행 대상 코드 블록(34) 및 서비스용 컨텐츠(32)를 수신한다. 제1 송수신부(41)는 컨텐츠 분배 서버(50)로 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52) 및 권리 객체(42)를 전송한다.
제1 데이터베이스부(43)는 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 저장장치용 프로그램(52)을 저장한다. 이때 서비스용 컨텐츠(32)는 DCF 형태로 변환되어 제1 데이터베이스부(43)에 저장될 수 있다. 저장장치용 프로그램(52)은 분리 실행 대상 코드 블록(34)을 포함할 수 있다.
이때 저장장치용 프로그램(52)은 인스톨(install) 또는 갱신(update)용 프로그램을 포함한다. 예컨대 저장장치(80)가 스마트카드인 경우, 저장장치용 프로그램(52)은 애플릿(applet)일 수 있다.
분리 실행 대상 코드 블록(34)은 호스트 단말(70)에서 실행되는 실행형 컨텐츠(30)에서 추출된 코드 블록이다. 예컨대 분리 실행 대상 코드 블록(34)은 x86 또는 x64용 실행형 컨텐츠(30)의 코드 영역(31)에서 추출된 코드 블록일 수 있다. 따라서 분리 실행 대상 코드 블록(34)은 저장장치(80)에 사용될 수 있는 코드 형식으로 변환된다. 예컨대 저장장치(80)가 스마트카드인 경우, 분리 실행 대상 코드 블록(34)은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환된다. 분리 실행 대상 코드 블록(34)은 권리 객체 또는 애플릿(applet)에 포함되어 스마트카드에 제공될 수 있다. 본 실시예에서는 분리 실행 대상 코드 블록(34)이 애플릿과 같은 저장장치용 프로그램(52)에 포함되어 제공되는 예를 개시하였다.
그리고 제1 서버제어부(45)는 DRM 서버(40)의 전반적인 제어 동작을 수행한다. 즉 제1 서버제어부(45)는 컨텐츠 등록 서버(20)로부터 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. 제1 서버제어부(45)는 서비스용 컨텐츠(32)를 CEK로 암호화하고, DCF로 포맷팅하여 제1 데이터베이스부(43)에 저장할 수 있다. 제1 서버제어부(45)는 컨텐츠 분배 서버(50)를 통한 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청에 따라 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송한다. 이때 DRM 서버(40)는 사용자 개인키로 CEK를 암호화하여 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다.
또한 제1 서버제어부(45)는 분리 실행 대상 코드 블록(34)을 저장장치용 프로그램(52)에 포함시켜 컨텐츠 분배 서버(50)로 전송한다. 이때 제1 서버제어부(45)는 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 사용자의 구매 요청에 따라 전송할 수 있다.
본 실시예에 따른 코드 블록 제공 시스템의 컨텐츠 분배 서버(50)는, 도 1 내지 도 3, 도 5에 도시된 바와 같이, 제2 송수신부(51), 제2 데이터베이스부(53) 및 제2 서버제어부(55)를 포함하여 구성된다.
제2 송수신부(51)는 네트워크(60)를 통하여 DRM 서버(40) 및 호스트 단말(70)과 통신을 수행한다. 제2 송수신부(51)는 제2 서버제어부(55)의 제어에 따라 호스트 단말(70)로부터 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 DRM 서버(40)로 전달한다. 제2 송수신부(51)는 제2 서버제어부(55)의 제어에 따라 DRM 서버(40)로부터 DRM이 적용된 서비스용 컨텐츠(32), 권리 객체(42) 및 저장장치용 프로그램(52)을 수신하여 호스트 단말(70)로 전달한다. 특히 제2 송수신부(51)는 DRM 서버(40)로부터 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 수신하여 호스트 단말(70)로 전달한다.
제2 데이터베이스부(53)는 호스트 단말(70)로 전달하기 위한 서비스용 컨텐츠(32), 권리 객체(42) 및 저장장치용 프로그램(52)을 저장할 수 있다.
그리고 제2 서버제어부(55)는 컨텐츠 분배 서버(50)의 전반적인 제어 동작을 수행한다. 즉 제2 서버제어부(55)는 제2 송수신부(51)를 통하여 호스트 단말(70)로부터 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 DRM 서버(40)로 전달한다. 그리고 제2 서버제어부(55)는 제2 송수신부(51)를 통하여 해당 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32), 권리 객체(42) 및 저장장치용 프로그램(52)을 수신하여 호스트 단말(70)로 전달한다.
본 실시예에 따른 코드 블록 제공 시스템의 호스트 단말(70)은, 도 1 내지 도 3, 도 6에 도시된 바와 같이, 통신부(71), 입력부(73), 제1 저장부(75), 제1 통신인터페이스부(77), 표시부(78) 및 제1 제어부(79)를 포함하여 구성된다.
통신부(71)는 네트워크(60)를 통하여 컨텐츠 분배 서버(50)와 통신을 수행한다. 통신부(71)는 제1 제어부(79)의 제어에 따라 특정 실행형 컨텐츠(30)의 구매 요청을 컨텐츠 분배 서버(50)로 전송한다. 통신부(71)는 컨텐츠 분배 서버(50)로부터 DRM이 적용된 서비스용 컨텐츠(32), 권리 객체(42) 및 저장장치용 프로그램(52)을 수신하여 제1 제어부(79)로 전달한다.
입력부(73)는 호스트 단말(70)의 조작을 위한 복수의 키를 제공하며, 사용자의 키선택에 따른 선택 신호를 발생하여 제1 제어부(79)로 전달한다. 사용자는 입력부(73)를 통해 실행형 컨텐츠(30)의 구매를 요청하고, 구매한 실행형 컨텐츠(30)의 권리 객체(42) 및 분리 실행 대상 코드 블록(34)을 저장장치(80)에 설치할 것을 요청하는 선택 신호를 입력할 수 있다. 이때 입력부(73)로는 키패드, 터치패드와 같은 포인팅 장치, 터치스크린(touch screen) 등의 입력장치가 사용될 수 있다.
제1 저장부(75)는 호스트 단말(70)의 동작 제어시 필요한 프로그램과, 그 프로그램 수행 중에 발생되는 정보를 저장한다. 제1 저장부(75)는 분리 실행 기반의 실행형 컨텐츠(30)를 설치하기 위한 실행프로그램을 저장한다. 특히 제1 저장부(75)는 컨텐츠 분배 서버(50)로부터 수신한 서비스용 컨텐츠(32)를 저장한다.
제1 통신인터페이스부(77)는 통신인터페이스(90)를 통한 저장장치(80)와 통신을 수행한다. 제1 통신인터페이스부(77)는 제1 제어부(79)의 제어에 따라 권리 객체(42) 및 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 저장장치(80)로 전송한다. 제1 통신인터페이스부(77)는 제1 제어부(79)의 제어에 따라 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하기 위한 CEK를 저장장치(80)로 요청하여 수신한다. 그리고 제1 통신인터페이스부(77)는 분리 실행 기반의 컨텐츠 실행 시 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)의 연결을 매개한다.
표시부(78)는 호스트 단말(70)에서 실행되는 각종 기능 메뉴를 비롯하여 제1 저장부(75)에 저장된 정보를 표시할 수 있다. 표시부(78)는 분리 실행 기반의 컨텐츠(30) 설치에 필요한 정보를 표시할 수 있다. 예컨대 표시부(78)는 저장장치용 프로그램(52)의 설치 여부를 질의하는 메시지를 표시할 수 있다. 표시부(78)는 저장장치용 프로그램(52) 설치 중 저장장치(80)로부터 수신한 메모리 부족 메시지를 표시할 수 있다. 이때 표시부(78)로는 LCD(Liquid Crystal Display)나 터치 스크린이 사용될 수 있다. 터치 스크린은 표시 장치와 입력 장치로서의 역할을 동시에 수행한다.
그리고 제1 제어부(79)는 호스트 단말(70)의 전반적인 제어 동작을 수행하는 마이크로프로세서이다. 특히 제1 제어부(79)는 분리 실행 기반의 실행형 컨텐츠(30) 설치를 제어한다. 즉 제1 제어부(79)는 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하여 설치한다. 제1 제어부(79)는 권리 객체(42)를 저장장치(80)에 설치한다. 그리고 제1 제어부(79)는 저장장치(80)와 함께 분리 실행 기반의 실행형 컨텐츠(30) 실행을 수행한다.
특히 제1 제어부(79)는 사용자가 컨텐츠 분배 서버(50)를 통하여 실행형 컨텐츠(30)를 구매하는 경우, 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 컨텐츠 분배 서버(50)로부터 수신하여 저장장치(80)로 전달한다. 또는 구매한 저장장치(80)에 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)이 기 저장되어 있는 경우, 제1 제어부(79)는 저장장치(80)로부터 저장장치용 프로그램(52)의 설치 여부를 질의하는 메시지를 수신하고, 이에 대한 응답으로 해당 저장장치용 프로그램(52)의 설치를 요청할 수 있다. 이때 전자는 후발급 형태로 분리 실행 대상 코드 블록(34)이 저장장치(80)에 제공되는 경우이고, 후자는 선발급 형태로 분리 실행 대상 코드 블록(34)이 저장장치(80)에 제공되는 경우이다.
본 실시예에 따른 코드 블록 제공 시스템의 저장장치(80)는, 도 1 내지 도 3, 도 7에 도시된 바와 같이, 제2 통신인터페이스부(81), 제2 저장부(83) 및 제2 제어부(85)를 포함하여 구성된다.
제2 통신인터페이스부(81)는 통신인터페이스(90)를 매개로 호스트 단말(70)에 접속되어 호스트 단말(70)과 통신을 수행한다. 제2 통신인터페이스부(81)는 호스트 단말(70)로부터 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)의 설치 요청을 수신하여 제2 제어부(85)로 전달한다. 제2 통신인터페이스부(81)는 호스트 단말(70)로부터 권리 객체(42) 및 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 수신하여 제2 제어부(85)로 전달한다.
제2 저장부(83)는 저장장치(80)의 동작 제어시 필요한 프로그램과, 그 프로그램 수행 중에 발생되는 정보를 저장한다. 제2 저장부(83)는 수신한 권리 객체(42)를 설치하는 실행프로그램을 저장한다. 또한 제2 저장부(83)는 저장장치용 프로그램(52)을 저장장치(80)에 설치하고, 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)에서 분리 실행 대상 코드 블록(34)을 추출하여 실행 형태로 저장하는 실행프로그램을 저장한다. 제2 저장부(83)는 권리 객체(42), 저장장치용 프로그램(52) 및 분리 실행 대상 코드 블록(34)을 저장한다. 이때 분리 실행 대상 코드 블록(34)은 실행 형태로 노아(NOR) 또는 낸드(NAND) 메모리에 저장될 수 있다. 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)은 선발급 형태로 제2 저장부(83)에 기 저장된 형태로 제공되거나, 후발급 형태로 호스트 단말(70)로부터 제공받을 수 있다.
그리고 제2 제어부(85)는 저장장치(80)의 전반적인 제어 동작을 수행하는 마이크로프로세서이다. 제2 제어부(85)는 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)에서 분리 실행 대상 코드 블록(34)을 추출하여 실행 형태로 제2 저장부(83)에 저장하는 것을 제어한다.
제2 제어부(83)는 DRM 처리부(82), 저장장치용 프로그램 처리부(84) 및 분리 실행 대상 코드 블록 처리부(86)를 포함하여 구성된다.
DRM 처리부(82)는 호스트 단말(70)로부터 권리 객체(42)를 전달받아 제2 저장부(83)에 저장한다. DRM 처리부(82)는 호스트 단말(70)의 요청에 따라 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하기 위한 권리 객체(42)에서 CEK를 복호화하여 호스트 단말(70)에 전달한다. 또한 DRM 처리부(82)는 사용자의 개인키를 설치하는 역할도 수행한다. 개인키의 설치는 저장장치(80) 구입 후 최초에만 수행되며, 이후 개인키가 갱신될 경우 저장장치(80)에 저장된 모든 권리 객체(42)는 무효화될 수 있다.
저장장치용 프로그램 처리부(84)는 저장장치용 프로그램(52)의 설치를 제어한다. 특히 저장장치용 프로그램 처리부(84)는 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 설치하는 과정에서 저장장치용 프로그램(52)에서 분리 실행 대상 블록(34)을 추출하여 분리 실행 대상 코드 블록 처리부(86)로 전달한다. 예컨대, 저장장치(80)가 스마트 카드인 경우, 저장장치용 프로그램 처리부(84)는 자바 카드 플랫폼(Java Card Platform)을 기반으로 구축될 수 있다. 저장장치용 프로그램(52)은 자바 카드 플랫폼에서 사용되는 애플릿이다. 분리 실행 대상 코드 블록(34)은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있다.
그리고 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 저장하고, 분리 실행 대상 코드 블록(34)의 실행을 통해 산출한 결과값을 호스트 단말(70)로 반환한다. 즉 저장장치용 프로그램 처리부(84)로부터 추출된 분리 실행 대상 코드 블록(34)을 전달받아 실행 형태로 제2 저장부(83)에 저장한다. 이때 분리 실행 대상 코드 블록 처리부(86)는 호스트 단말(70)로부터 특정 분리 실행 대상 코드 블록(34)의 결과값 요청을 수신하면, 해당 분리 실행 대상 코드 블록(34)을 런타임(runtime)에 링크한 후 시작 번지로 점프하여 실행시켜 산출한 결과값을 호스트 단말(70)로 반환한다.
한편 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)이 후발급 형태로 호스트 단말(70)로부터 저장장치(80)로 제공될 수 있다. 이 경우 제2 제어부(85)는 다음과 같이 분리 실행 대상 코드 블록(34)을 제2 저장부(83)에 저장할 수 있다. 저장장치(80)가 호스트 단말(70)에 접속되면, 저장장치용 프로그램 처리부(84)는 호스트 단말(70)로부터 구매한 실행형 컨텐츠(30)의 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 제2 통신인터페이스부(81)를 통하여 수신한다. 저장장치용 프로그램 처리부(84)는 수신한 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 설치하는 과정에서 저장장치용 프로그램(52)에서 분리 실행 대상 코드 블록(34)을 추출하여 분리 실행 대상 코드 블록 처리부(86)로 전달한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 전달받은 분리 실행 대상 코드 블록(34)을 실행 형태로 제2 저장부(83)에 저장한다.
이때 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 제2 저장부(83)에 저장할 때, 분리 실행 대상 코드 블록(34)을 저장할 만큼 남은 메모리의 용량이 충분한 지의 여부를 확인한다. 확인 결과 충분한 경우, 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.
하지만 확인 결과 부족한 경우, 분리 실행 대상 코드 블록 처리부(86)는 메모리 부족 메시지를 제2 통신인터페이스부(81)를 통하여 호스트 단말(70)로 전송한다. 호스트 단말(70)로부터 메모리 확보 요청 메시지를 수신하면, 저장장치용 프로그램 처리부(84)는 부족한 메모리 용량을 확보한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다. 이때 메모리 확보 요청 메시지는 제2 저장부(83)에 저장된 정보 중 사용자의 선택 신호에 따른 특정 정보의 삭제 요청 메시지일 수 있다. 또는 메모리 확보 요청 메시지는 설치할 저장장치용 프로그램(52)에 대응하는 기 저장된 저장장치용 프로그램의 삭제 요청 메시지일 수 있다.
다음으로 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)이 선발급 형태로 제2 저장부(83)에 기 저장된 형태로 제공될 수 있다. 이 경우 제2 제어부(85)는 다음과 같이 분리 실행 대상 코드 블록(34)을 제2 저장부(83)에 저장할 수 있다.
저장장치(80)가 호스트 단말(70)에 접속하면, 저장장치용 프로그램 처리부(84)는 호스트 단말(70)로 기 저장된 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)의 설치 여부를 질의하는 메시지를 전송한다. 저장장치용 프로그램 처리부(84)가 호스트 단말(70)로부터 질의에 대한 응답으로 저장장치용 프로그램(52)의 설치 요청을 수신하면, 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 설치하는 과정에서 저장장치용 프로그램(52)에서 분리 실행 대상 코드 블록(34)을 추출하여 분리 실행 대상 코드 블록 처리부(86)로 전달한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 전달받은 분리 실행 대상 코드 블록(34)을 실행 형태로 제2 저장부(83)에 저장한다.
본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 일 예를 도 1 내지 도 9를 참조하여 설명하면 다음과 같다. 여기서 도 8은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 일 예에 따른 흐름도이다. 그리고 도 9는 도 8의 분리 실행 대상 코드 블록을 저장하는 단계에 따른 상세흐름도이다.
본 실시예에 따른 코드 블록 제공 방법의 일 예는 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)이 후발급 형태로 호스트 단말(70)에서 저장장치(80)로 제공되는 경우이다.
먼저 S101단계에서 컨텐츠 등록 서버(20)는 등록된 실행형 컨텐츠(30)의 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)을 DRM 서버(40)로 전송한다. DRM 서버(40)는 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. 예컨대 DRM 서버(40)는 서비스용 컨텐츠(32)를 CEK로 암호화하고, DCF로 포맷팅하여 저장한다.
한편 S103단계에서 저장장치(80)가 통신인터페이스(90)를 매개로 호스트 단말(70)에 접속된 상태에서, S105단계에서 호스트 단말(70)이 컨텐츠 분배 서버(50)로 특정 실행형 컨텐츠(30)의 구매를 요청한다. 즉 호스트 단말(70)이 네트워크(60)을 통하여 컨텐츠 분배 서버(50)에 접속하면, 컨텐츠 분배 서버(50)는 구매할 수 있는 실행형 컨텐츠(30)의 목록을 호스트 단말(70)로 제공한다. 호스트 단말(70)은 수신한 실행형 컨텐츠(30)의 목록을 화면에 표시하고, 특정 실행형 컨텐츠(30)에 대한 구매 요청이 입력되면, 이를 컨텐츠 분배 서버(50)로 전송한다.
다음으로 S107단계에서 컨텐츠 분배 서버(50)는 특정 실행형 컨텐츠(30)의 구매 요청을 DRM 서버(40)로 전달한다.
이어서 S109단계에서 DRM 서버(40)는 구매 요청한 실행형 컨텐츠(30)의 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 생성한다. 이어서 S111단계에서 DRM 서버(40)는 생성한 저장장치용 프로그램(52)을 컨텐츠 분배 서버(50)로 전송한다. 이때 S109단계에서 DRM 서버(40)는 사용자 개인키(private key)로 CEK를 암호화하여 권리 객체(42)를 생성한다. S111단계에서 DRM 서버(40)는 생성한 저장장치용 프로그램(52)과 함께 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송한다
다음으로 S113단계에서 컨텐츠 분배 서버(50)는 수신한 저장장치용 프로그램(52), DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 호스트 단말(70)로 전송한다.
다음으로 S115단계에서 호스트 단말(70)은 수신한 저장장치용 프로그램(52)을 저장장치(80)로 전송한다. 이때 호스트 단말(70)은 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)에 대한 설치를 함께 요청할 수 있다. 아울러 호스트 단말(70)은 권리 객체(42)를 저장장치(80)로 전송한다.
이어서 S117단계에서 저장장치(80)는 수신한 저장장치용 프로그램(52)을 설치하고, 설치하는 과정에서 저장장치용 프로그램(52)에서 분리 실행 대상 코드 블록(34)을 추출한다(S119). 이때 저장장치(80)는 수신한 권리 객체(42)를 메모리에 저장한다.
그리고 S121단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 메모리에 저장한다. 이때 S121단계를 도 9를 참조하여 설명하면 다음과 같다.
먼저 S123단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 저장할 만큼 남은 메모리의 용량이 충분한 지의 여부를 확인한다.
S123단계의 확인 결과 충분한 경우, S131단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.
하지만 S123단계의 확인 결과 부족한 경우, S125단계에서 저장장치(80)는 메모리 부족 메시지를 호스트 단말(70)로 전송한다. 다음으로 S127단계에서 호스트 단말(70)은 메모리 부족 메시지에 응답으로 메모리 확보 요청 메시지를 저장장치(80)로 전송한다. 이때 메모리 확보 요청 메시지는 저장장치(80)에 저장된 정보 중 사용자의 선택 신호에 따른 특정 정보의 삭제 요청 메시지일 수 있다. 또는 메모리 확보 요청 메시지는 설치할 저장장치용 프로그램(52)에 대응하는 기 저장된 저장장치용 프로그램의 삭제 요청 메시지일 수 있다.
다음으로 S129단계에서 저장장치(80)는 수신한 메모리 확보 요청 메시지에 따라 부족한 메모리 용량을 확보한다.
그리고 S129단계에서 추출한 분리 실행 대상 코드 블록(34)을 저장할 정도로 메모리 용량이 확보되면, S131단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.
한편 본 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 일 예에서는, DRM 서버(50)가 S107단계에서 실행형 컨텐츠 구매 요청을 수신하면 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)을 생성하는 예를 개시하였지만 이것에 한정되는 것은 아니다. 예컨대, DRM 서버(50)는 컨텐츠 등록 서버(20)로부터 분리 실행 대상 코드 블록(34)을 수신하면 S109를 S107단계 이전에 수행할 수 있다.
그리고 S111단계에서 컨텐츠 분배 서버(50)가 저장장치용 프로그램(52)을 DRM 서버(40)로부터 수신하는 예를 개시하였지만 이것에 한정되는 것은 아니다. 예컨대 컨텐츠 분배 서버(50)는 DRM 서버(40)로부터 분리 실행 대상 코드 블록(34)을 수신하고, 수신한 분리 실행 대상 코드 블록(34)을 저장장치용 프로그램(52)에 포함시킬 수도 있다.
또한 본 실시예에서는 S103단계에 따른 호스트 단말(70)이 저장장치(80)에 접속된 상태에서 S105단계 내지 S113단계를 수행하는 예를 개시하였지만 이것에 한정되는 것은 아니다. 예컨대 호스트 단말(70)은 저장장치(80)가 접속되지 않은 상태에서, S105단계 내지 S113단계를 수행할 수 있다. 그리고 S113단계 이후에 호스트 단말(70)에 저장장치(80)가 접속되면, 호스트 단말(70)과 저장장치(80)는 연동하여 S115단계 내지 S121단계를 수행할 수 있다.
본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 다른 예를 도 1 내지 도 10을 참조하여 설명하면 다음과 같다. 여기서 도 10은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법의 다른 예에 따른 흐름도이다.
본 실시예에 따른 코드 블록 제공 방법의 다른 예는 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)이 선발급 형태로 저장장치(80)에 제공된 경우이다.
먼저 S102단계에서 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)이 기 저장된 저장장치(80)가 호스트 단말(70)에 접속되면, S104단계에서 저장장치(80)는 호스트 단말(70)로 분리 실행 대상 코드 블록(34)이 포함된 저장장치용 프로그램(52)의 설치 여부를 질의한다.
다음으로 S106단계에서 호스트 단말(70)은 질의에 대한 응답으로 해당 저장장치용 프로그램(52)의 설치를 저장장치(80)로 요청한다.
그리고 S117단계 내지 S121단계를 수행하여 저장장치(80)에 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다. 이때 S117단계 내지 S121단계는 도 8 및 도 9에 대한 설명 부분과 중복되기 때문에 상세한 설명은 생략한다.
본 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
한편, 본 명세서와 도면에 개시된 실시예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게는 자명한 것이다.
본 발명은 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것으로, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 저장장치용 프로그램에 포함시켜 저장장치로 제공하고, 이를 통하여 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 서버, 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다.
10 : 컨텐츠 제공 단말 20 : 컨텐츠 등록 서버
30 : 실행형 컨텐츠 32 : 서비스용 컨텐츠
34 : 분리 실행 대상 코드 블록 40 : DRM 서버
42 : 권리 객체 50 : 컨텐츠 분배 서버
52 : 저장장치용 프로그램 60 : 네트워크
70 : 호스트 단말 80 : 저장장치
100 : 분리 실행 기반의 디지털 저작권 관리 시스템
30 : 실행형 컨텐츠 32 : 서비스용 컨텐츠
34 : 분리 실행 대상 코드 블록 40 : DRM 서버
42 : 권리 객체 50 : 컨텐츠 분배 서버
52 : 저장장치용 프로그램 60 : 네트워크
70 : 호스트 단말 80 : 저장장치
100 : 분리 실행 기반의 디지털 저작권 관리 시스템
Claims (18)
- 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 통신인터페이스로 연결된 저장장치로 전송하는 호스트 단말;
상기 호스트 단말로부터 상기 저장장치용 프로그램을 수신하고, 상기 수신한 저장장치용 프로그램을 설치하는 과정에서 상기 저장장치용 프로그램에서 상기 분리 실행 대상 코드 블록을 추출하고, 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장장치;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템. - 저장장치용 프로그램을 저장하는 데이터베이스부;
컨텐츠 등록 서버와 통신을 수행하는 송수신부;
상기 송수신부를 통하여 상기 컨텐츠 등록 서버로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록을 수신하고, 상기 수신한 분리 실행 대상 코드 블록을 상기 저장장치용 프로그램에 포함시키는 서버제어부;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 DRM 서버. - 저장부;
호스트 단말과 통신을 수행하며, 상기 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램의 설치 요청을 수신하는 통신인터페이스부;
상기 통신인터페이스부로부터 상기 설치 요청을 전달받아 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 설치하는 과정에서 상기 저장장치용 프로그램에서 상기 분리 실행 대상 코드 블록을 추출하는 저장장치용 프로그램 처리부;
상기 저장장치용 프로그램 처리부로부터 상기 추출된 분리 실행 대상 코드 블록을 전달받아 실행 형태로 상기 저장부에 저장하는 분리 실행 대상 코드 블록 처리부;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 저장장치. - 제3항에 있어서,
상기 통신인터페이스부는 상기 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 수신하여 상기 저장장치용 프로그램 처리부로 전달하는 것을 특징으로 하는 분리 실행 기반의 저장장치. - 제3항에 있어서,
상기 저장부에 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램이 기 저장되어 있는 것을 특징으로 하는 분리 실행 기반의 저장장치. - 제5항에 있어서,
상기 통신인터페이스부를 통하여 상기 호스트 단말에 접속하면 상기 저장장치용 프로그램 처리부는 상기 기 저장된 저장장치용 프로그램의 설치 여부를 상기 호스트 단말로 질의하고, 상기 질의에 대한 응답으로 설치 요청을 수신하면 상기 기 저장된 저장장치용 프로그램에서 상기 분리 실행 대상 코드 블록을 추출하는 것을 특징으로 하는 분리 실행 기반의 저장장치. - 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법으로,
저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램의 설치 요청을 수신하는 수신 단계;
상기 저장장치가 상기 저장장치용 프로그램을 설치하는 과정에서 상기 저장장치용 프로그램에서 상기 분리 실행 대상 코드 블록을 추출하는 추출 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제7항에 있어서, 상기 수신 단계에서,
상기 저장장치가 접속한 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 수신하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제7항에 있어서, 상기 수신 단계 이전에 수행되는,
상기 저장장치가 호스트 단말에 접속하면, 상기 저장장치에 기 저장된 실행형 컨텐츠의 분리 실행 대상 코드 블록의 설치 여부를 상기 호스트 단말에 질의하는 단계;
를 더 포함하며,
상기 수신 단계에서 상기 저장장치가 상기 질의에 대한 응답으로 상기 호스트 단말로부터 설치 요청을 수신하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제9항에 있어서, 상기 수신 단계와 상기 추출 단계 사이에 수행되는,
상기 저장장치가 기 저장된 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 저장장치용 프로그램을 호출하는 호출 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제7항에 있어서, 상기 저장 단계는,
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 저장할 만큼 남은 메모리의 용량이 충분한 지를 확인하는 단계;
상기 확인 결과 충분한 경우, 상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제11항에 있어서,
상기 확인 결과 부족한 경우, 상기 저장장치가 메모리 부족 메시지를 상기 호스트 단말로 전송하는 단계;
상기 저장장치가 상기 호스트 단말로부터 메모리 확보 요청 메시지를 수신하여 부족한 메모리 용량을 확보하는 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제12항에 있어서,
상기 메모리 확보 요청 메시지는 상기 저장장치에 저장된 정보에 대한 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제12항에 있어서,
상기 메모리 확보 요청 메시지는 설치할 저장장치용 프로그램에 대응하는 기 저장된 저장장치용 프로그램의 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제7항에 있어서,
상기 저장장치용 프로그램은 인스톨(install) 또는 갱신(update)용 프로그램을 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제7항에 있어서,
상기 분리 실행 대상 코드 블록은 상기 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되어 있는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제7항에 있어서,
상기 저장장치가 자바 카드 플랫폼(Java Card Platform)을 기반으로 하는 경우, 상기 저장장치용 프로그램은 애플릿(applet)이며, 상기 분리 실행 대상 코드 블록은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법. - 제7항 내지 제17항 중 어느 한 항에 따른 방법이 기록된 컴퓨터로 판독 가능한 기록매체.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20090070231 | 2009-07-30 | ||
KR1020090070229 | 2009-07-30 | ||
KR20090070229 | 2009-07-30 | ||
KR1020090070231 | 2009-07-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110013184A KR20110013184A (ko) | 2011-02-09 |
KR101432989B1 true KR101432989B1 (ko) | 2014-08-27 |
Family
ID=43772986
Family Applications (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100029969A KR101432989B1 (ko) | 2009-07-30 | 2010-04-01 | 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체 |
KR20100029978A KR101487176B1 (ko) | 2009-07-30 | 2010-04-01 | 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체 |
KR1020100030172A KR20110013187A (ko) | 2009-07-30 | 2010-04-02 | 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템 및 방법, 그 drm서버 및 저장장치, 이를 위한 기록매체 |
KR1020100030189A KR101504087B1 (ko) | 2009-07-30 | 2010-04-02 | 저장장치 기반 웹 서비스 시스템 및 방법, 그리고 이를 수행하는 프로그램을 기록한 기록매체 |
KR20100030188A KR101487175B1 (ko) | 2009-07-30 | 2010-04-02 | 분리형 ro 관리를 위한 호스트 단말 및 저장 장치, 그의 분리형 ro 관리 방법 그리고, 이를 수행하는 프로그램을 기록한 기록매체 |
KR1020100031065A KR101544731B1 (ko) | 2009-07-30 | 2010-04-05 | 실행형 컨텐츠의 분리 실행이 가능한 저장 장치 및 그의 네이티브 실행 환경 구현 장치 |
KR1020100031120A KR101374159B1 (ko) | 2009-07-30 | 2010-04-05 | 저장장치를 이용한 권리객체 관리 시스템 및 방법, 그 drm서버 및 호스트 단말, 이를 위한 기록매체 |
KR1020100030784A KR101525402B1 (ko) | 2009-07-30 | 2010-04-05 | 실행형 컨텐츠의 분리 실행 방법, 분리 실행 기반 실행형 컨텐츠 구성 장치, 그리고 분리 실행 기반 실행형 컨텐츠를 기록한 기록 매체 |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20100029978A KR101487176B1 (ko) | 2009-07-30 | 2010-04-01 | 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체 |
KR1020100030172A KR20110013187A (ko) | 2009-07-30 | 2010-04-02 | 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템 및 방법, 그 drm서버 및 저장장치, 이를 위한 기록매체 |
KR1020100030189A KR101504087B1 (ko) | 2009-07-30 | 2010-04-02 | 저장장치 기반 웹 서비스 시스템 및 방법, 그리고 이를 수행하는 프로그램을 기록한 기록매체 |
KR20100030188A KR101487175B1 (ko) | 2009-07-30 | 2010-04-02 | 분리형 ro 관리를 위한 호스트 단말 및 저장 장치, 그의 분리형 ro 관리 방법 그리고, 이를 수행하는 프로그램을 기록한 기록매체 |
KR1020100031065A KR101544731B1 (ko) | 2009-07-30 | 2010-04-05 | 실행형 컨텐츠의 분리 실행이 가능한 저장 장치 및 그의 네이티브 실행 환경 구현 장치 |
KR1020100031120A KR101374159B1 (ko) | 2009-07-30 | 2010-04-05 | 저장장치를 이용한 권리객체 관리 시스템 및 방법, 그 drm서버 및 호스트 단말, 이를 위한 기록매체 |
KR1020100030784A KR101525402B1 (ko) | 2009-07-30 | 2010-04-05 | 실행형 컨텐츠의 분리 실행 방법, 분리 실행 기반 실행형 컨텐츠 구성 장치, 그리고 분리 실행 기반 실행형 컨텐츠를 기록한 기록 매체 |
Country Status (1)
Country | Link |
---|---|
KR (8) | KR101432989B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101447282B1 (ko) * | 2012-08-20 | 2014-10-16 | 주식회사 네오위즈인터넷 | 모바일 결제 서비스를 제공하는 방법, 모바일 단말기, 기록매체 및 시스템 |
WO2014178618A1 (ko) * | 2013-04-29 | 2014-11-06 | 케이피커뮤니케이션 주식회사 | 양방향 광고 동영상 매칭 시스템 및 그 동작방법 |
KR102156371B1 (ko) | 2013-11-27 | 2020-09-15 | 한국전자통신연구원 | 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치 |
KR102204654B1 (ko) * | 2014-01-24 | 2021-01-19 | 주식회사 넥슨코리아 | 오프라인 매장에서 구매된 콘텐츠를 제공하는 방법 및 장치 |
KR101671336B1 (ko) * | 2014-02-27 | 2016-11-16 | (주)스마일게이트엔터테인먼트 | 코드 분리가 적용된 언패킹 보호 방법 및 장치 |
KR102443069B1 (ko) | 2015-08-12 | 2022-09-14 | 삼성전자주식회사 | 어플리케이션을 실행하기 위한 장치 및 방법 |
CA2993857A1 (en) * | 2018-02-02 | 2019-08-02 | Ferguson Technologies Inc. | Systems and methods for generating electrical energy |
KR102441167B1 (ko) * | 2018-12-05 | 2022-09-08 | 한국전자통신연구원 | 펑션 실행 장치 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030041027A (ko) * | 2001-11-19 | 2003-05-23 | 에스케이텔레텍주식회사 | 이동통신 단말기용 컨텐츠 어플리케이션의 리소스 한정제공 방법 및 그를 이용한 이동통신 단말기 |
KR100783811B1 (ko) | 2007-08-28 | 2007-12-10 | 주식회사 파수닷컴 | 압축 파일에 대한 디지털 저작권 관리 방법 |
WO2009083869A1 (en) | 2007-12-20 | 2009-07-09 | Koninklijke Philips Electronics N.V. | Device and method for digital right management |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215828A (ja) * | 2000-11-16 | 2002-08-02 | Yoshinobu Inada | ディジタル著作物の管理システムおよびディジタル著作物の管理方法 |
KR101254209B1 (ko) * | 2004-03-22 | 2013-04-23 | 삼성전자주식회사 | 디바이스와 휴대용 저장장치간에 권리 객체를 이동,복사하는 방법 및 장치 |
KR101043336B1 (ko) * | 2004-03-29 | 2011-06-22 | 삼성전자주식회사 | 디바이스와 휴대형 저장장치간의 디지털 권리객체에 관한정보의 획득 및 제거를 위한 방법 및 장치 |
JP4664055B2 (ja) | 2004-12-10 | 2011-04-06 | 株式会社エヌ・ティ・ティ・ドコモ | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
JP2006172351A (ja) | 2004-12-20 | 2006-06-29 | Hitachi Ltd | リムーバブルメディア利用によるコンテンツの使用期限管理方法及びシステム |
KR100738917B1 (ko) | 2006-02-14 | 2007-07-12 | 에스케이 텔레콤주식회사 | 권한 발급 서버의 위임 방식을 이용하여 전자통신기기에 암호화한 컨텐츠와 권한 오브젝트를 제공하는 서버, 시스템 및 방법 |
KR101346734B1 (ko) * | 2006-05-12 | 2014-01-03 | 삼성전자주식회사 | 디지털 저작권 관리를 위한 다중 인증서 철회 목록 지원방법 및 장치 |
KR101314271B1 (ko) * | 2006-07-25 | 2013-10-02 | 엘지전자 주식회사 | 디지털 권한관리 방법 및 그 시스템 |
KR101354759B1 (ko) | 2007-01-03 | 2014-01-22 | 엘지전자 주식회사 | 단말기의 디지털 저작권 관리방법 |
-
2010
- 2010-04-01 KR KR1020100029969A patent/KR101432989B1/ko active IP Right Grant
- 2010-04-01 KR KR20100029978A patent/KR101487176B1/ko not_active IP Right Cessation
- 2010-04-02 KR KR1020100030172A patent/KR20110013187A/ko active Search and Examination
- 2010-04-02 KR KR1020100030189A patent/KR101504087B1/ko active IP Right Grant
- 2010-04-02 KR KR20100030188A patent/KR101487175B1/ko active IP Right Grant
- 2010-04-05 KR KR1020100031065A patent/KR101544731B1/ko active IP Right Grant
- 2010-04-05 KR KR1020100031120A patent/KR101374159B1/ko active IP Right Grant
- 2010-04-05 KR KR1020100030784A patent/KR101525402B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030041027A (ko) * | 2001-11-19 | 2003-05-23 | 에스케이텔레텍주식회사 | 이동통신 단말기용 컨텐츠 어플리케이션의 리소스 한정제공 방법 및 그를 이용한 이동통신 단말기 |
KR100783811B1 (ko) | 2007-08-28 | 2007-12-10 | 주식회사 파수닷컴 | 압축 파일에 대한 디지털 저작권 관리 방법 |
WO2009083869A1 (en) | 2007-12-20 | 2009-07-09 | Koninklijke Philips Electronics N.V. | Device and method for digital right management |
Also Published As
Publication number | Publication date |
---|---|
KR101544731B1 (ko) | 2015-08-17 |
KR20110013191A (ko) | 2011-02-09 |
KR101525402B1 (ko) | 2015-06-08 |
KR101504087B1 (ko) | 2015-03-24 |
KR20110013184A (ko) | 2011-02-09 |
KR101374159B1 (ko) | 2014-03-13 |
KR101487175B1 (ko) | 2015-02-02 |
KR20110013187A (ko) | 2011-02-09 |
KR20110013189A (ko) | 2011-02-09 |
KR20110013193A (ko) | 2011-02-09 |
KR101487176B1 (ko) | 2015-02-02 |
KR20110013185A (ko) | 2011-02-09 |
KR20110013188A (ko) | 2011-02-09 |
KR20110013192A (ko) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101432989B1 (ko) | 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체 | |
KR100796583B1 (ko) | 라이센스 관리를 위한 시스템, 방법 및 기록 매체 | |
EP2628125B1 (en) | Method and apparatus for downloading drm module | |
US20120090021A1 (en) | Platform Specific Application Building | |
US9392051B2 (en) | Application distribution supplying a dedicated application to a terminal from an application deposited by the developer | |
JP2006506747A (ja) | 電子ファイル更新中におけるデバイス・メモリ管理 | |
JP2007528064A (ja) | 無線装置オペレーティング環境における未検証プログラムの実行 | |
EP1522971A2 (en) | Information processing device and information processing terminal | |
KR100710005B1 (ko) | Drm 기반의 사용 권한 양도 서비스 방법 및 장치 | |
KR101442000B1 (ko) | 분리 실행 기반의 컨텐츠 등록 서버, 그 방법 및 그 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체 | |
KR101498919B1 (ko) | 저장장치 기반 디지털 저작권 관리 시스템 및 방법, 이를 위한 기록매체 | |
KR100859968B1 (ko) | 모바일 콘텐츠 다운로드 방법 | |
US20030177377A1 (en) | Protecting computer software | |
KR20120002079A (ko) | 어플리케이션 저작권 보호 시스템, 어플리케이션 저작권 보호 장치 및 방법, 그리고 단말 장치 및 상기 단말 장치의 어플리케이션 저작권 보호 방법 | |
JP2010218028A (ja) | 携帯端末および管理プログラム | |
US20060212513A1 (en) | Managing apparatus, managing method and computer-readable storage medium | |
JP4934162B2 (ja) | 携帯端末および管理プログラム | |
KR100611119B1 (ko) | Drm 기반의 wipi 컨텐츠 서비스 방법 및 장치 | |
JP2006099641A (ja) | 通信システム、サーバ装置、クライアント装置、通信方法、並びにプログラム | |
KR101632981B1 (ko) | 타겟 선불카드의 범위가 한정된 온라인 충전쿠폰에 대하여 선불카드 관리충전 서버에 의한 결제-충전 링크관리 기반의 휴대단말기의 선불카드 관리충전 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체 | |
KR101804242B1 (ko) | Usim을 이용한 게임 제공 방법 및 시스템 | |
JPH11219292A (ja) | プログラムライセンス管理システム及びプログラムを記録したコンピュータ可読媒体 | |
JP2003280757A (ja) | 情報処理ソフトウエア利用サービスシステム、課金方法、記憶媒体及びプログラム | |
KR20060117778A (ko) | Drm 기반의 vod 컨텐츠 서비스 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180731 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190718 Year of fee payment: 6 |