KR20020003375A - 라이센싱 콘텐츠용 시스템 및 방법 - Google Patents

라이센싱 콘텐츠용 시스템 및 방법 Download PDF

Info

Publication number
KR20020003375A
KR20020003375A KR1020017011576A KR20017011576A KR20020003375A KR 20020003375 A KR20020003375 A KR 20020003375A KR 1020017011576 A KR1020017011576 A KR 1020017011576A KR 20017011576 A KR20017011576 A KR 20017011576A KR 20020003375 A KR20020003375 A KR 20020003375A
Authority
KR
South Korea
Prior art keywords
license
data
content
digital content
server
Prior art date
Application number
KR1020017011576A
Other languages
English (en)
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 KR20020003375A publication Critical patent/KR20020003375A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 콘텐츠(201)에 라이센스 정보를 구현함으로써 프로그램에 의해 제공되며 콘텐츠(201)가 필요로 하는 기능에 액세스하는 것을 관리하기 위한 시스템 및 방법에 관한 것이다. 본 발명에 의하면, 인터넷상에서 수익목적 및 비수익목적의 콘텐츠(201) 모두의 분배가 용이해진다. 라이센스 정보를 저장(406)하게 되면, 라이센스 사용자를 식별하고 라이센스 사용자를 위한 기능의 관련 레벨을 유지하는 것이 가능해진다. 이 정보는 기능에 대한 어떤 액세스가 라이센스 사용자에게 허용되는지를 판정하는 라이센스 사용자를 위한 액세스 정책을 나타낸다. 콘텐츠(210)는 이 액세스 정책에 의해 허용되는 한도까지 프로그램의 기능을 이용할 수 있게 된다.

Description

라이센싱 콘텐츠용 시스템 및 방법{SYSTEM AND METHOD FOR LICENSING CONTENT}
인터넷, 특히 인터넷에서의 월드와이드웹(간단히, "웹" 또는 "WWW")은 형식화된 문자, 그래픽, 음성, 영상 및 대화형으로 프로그램된 콘텐츠 등의 거의 정해지지 않은 종류의 콘텐츠에 광범위하게 액세스하기 위한 대중적인 매체가 되고 있다. 다양한 유형의 콘텐츠와 관련된 것으로는, 파일 형식으로 저장되거나 네트워크를 통해 통신되는 비트열 또는 문자로서 표현되는 규약(conventions), 포맷 또는 랭귀지가 있다. 많은 콘텐츠 표현이 공지되어 있지만, 현재 널리 보급되어 있는 표현으로는, 포맷화된 문자용의 하이퍼텍스트생성언어(HTML), 이미지를 위한 제이페그(JPEG), 그리고 프로그램용 자바(JAVA)가 있다. 이외의 콘텐츠 표현들이 계속해서 발전하고 있다. 씨유알엘(CURL) 랭귀지는, MIT(Massachusetts Institute ofTechnology)에서 개발[씨유알엘(CURL)은, 컴퓨터 사이언스 월드와이드웹 저널(Computer Science World Wide Web Journal)의 1997년 봄, 제2호, Ⅱ, 제11권의 MIT 연구소편에, 호스테터(M. Hostetter), 크랜즈(D. Kranz), 시드(C. Seed), 터만(C. Terman), 워드(S. Ward)에 의해,A Gentle Slope Language for the Web으로 정의되어 있다]한 것으로서, 단일 랭귀지로 다양한 유형의 콘텐츠를 표현하기 위해 만들어진 것이다.
통상적으로, 콘텐츠는 처리된 후에 이용자에게 제공되어야 한다. 이러한 콘텐츠의 처리에는 사용자 컴퓨터("클라이언트")용 소프트웨어를 필요로 하는데, 이 소프트웨어는 (a) 로컬 저장 매체(즉, CD-ROM, 하드디스크)나 원격 컴퓨터("서버")로부터 일부 식별 가능한 랭귀지에 표현된 콘텐츠를 패치(fetch)하고, (b) 이 패치된 콘텐츠를 적절하게 "실행", "인터프리트(번역)" 또는 처리"한다. 실행, 동작 및 인터프리트는 모든 형태의 콘텐츠 처리를 말하는 것이며, 본 명세서에서 혼용해서 사용한다는 것에 주의하라.
적절한 처리 방식은 현재 처리되고 있는 콘텐츠의 유형과 용이하게 구분되는 것이 일반적이다. 이러한 구분은 콘텐츠와 관련된 파일명이나 콘텐츠 그 자체로부터 정해진다. 예를 들어, "jpg"로 끝나는 파일명은 콘텐츠가 JPEG 이미지이고 적절히 처리하면 사용자가 볼 수 있도록 컴퓨터 모니터상에 그 이미지를 표시할 수 있다는 것을 의미하는 것이 통상적이다. 이와 유사하게, "midi" 마임(MIME: Multipurpose Internet Mail Extensions) 형식으로 전송된 콘텐츠는 이용자가 들을 수 있도록 재생시킬 수 있는 음성 콘텐츠라는 것을 알 수 있을 것이다. 그러나,적당한 표기법을 이용하여 콘텐츠가 편집될 수 있도록 하기 위해 음성 콘텐츠를 표시하는 것과 같은 다른 유형의 처리가 수행될 수 있다는 것을 주의하라.
월드와이드웹(간단히, 웹이라 한다)상에서, 콘텐츠를 패치하고 처리하는 동작은 "브라우저"라 불리는 클라이언트 애플리케이션에 의해 수행되는 것이 통상적이며, 브라우저로는 워싱턴주 레드몬드에 소재한 마이크로소프트사(Microsoft Corporation)에서 만든 마이크로소프트 인터넷 익스플로어(Microsoft Internet Explorer)와, 캘리포니아주 마운튼뷰에 소재한 네트스케이프 커뮤니케이 션스사(Netscape Communications Corporation)에서 만든 네트스케이프 커뮤니케이터(Netscape Communicator)가 있다. 이들 브라우저는 HTML 텍스트, JPEG 이미지 및 자바(Java) 프로그램 등의 몇가지 일반적인 유형의 콘텐츠를 처리할 수 있다. 이들 브라우저는 일반적으로 플러그인(plug-in)이라 불리는 로딩 가능한 소프트웨어 모듈을 통해 씨유알엘(CURL) 랭귀지와 같은 새로운 타입의 콘텐츠를 실행시킬 수 있다.
브라우저가 고유하지 않은 타입의 콘텐츠를 페치하거나 로딩하게 되는 경우에는, 브라우저가 그 콘텐츠 타입과 관련된 플러그인 프로그램을 로딩하게 된다. 이에 의하여, 플러그인 프로그램이 제어를 획득하여 그 콘텐츠를 처리하게 된다. 클라이언트 컴퓨터상의 브라우저가 적절한 플러그인 프로그램을 이용할 수 없는 경우에는, 다른 소스, 일반적으로 인터넷상의 서버로부터 획득된 적절한 플러그인 프로그램을 다운로드할 수 있다.
예컨대, 브라우저가 CURL 프로그램을 구성하는 콘텐츠를 패치하게 되면, 브라우저는 그 콘텐츠에 대응하여 CURL 랭귀지를 처리하도록 만들어진 CURL "플러그인" 프로그램을 로딩하게 된다. 이 과정은 CURL 소스 코드를 컴파일링하고 그 결과 코드를 실행시키는 과정을 포함한다. 이후, 다음의 후속하는 CURL 랭귀지 콘텐츠가 브라우저에 의해 패치되면, CURL 랭귀지 플러그인 프로그램이 제어를 갖게 되고 이 플러그인 프로그램을 재차 로딩할 필요는 없게 된다.
웹이 보편화된 한가지 이유로는 통신이 방해되지 않도록 개선되었다는 것을 들 수 있다. 명확한 정보 식별자[예를 들어, 유알엘(Uniform Resource Locator: URL)]는 콘텐츠에 액세스할 수 있도록 하기 위해 꼭 필요한 것이며, 상호관련된 콘텐츠의 풍부한 넥서스(nexus)로 웹을 급격하게 진보시켰다. 정보를 어떠한 제한 없이 액세스하는 것이 웹의 성장에 중요한 것이긴 하지만, 전자 산업은 통상의 라이센싱 모델에 대해서는 역행하고 있다. 유용한 웹 콘텐츠에 자유롭고 용이하게 액세스하게 됨으로써, 웹 콘텐츠의 사용에 대해 정당하게 라이센스(사용허락)를 받고 또한 수입원이 됨으로써 혜택을 받는 콘텐츠 공급업자들에 대한 동기가 없어지고 있다. 이러한 것은 정보에 대한 액세스를 제어하기가 어렵고 정보 및 서비스에 요금을 부과하기가 어렵기 때문이다. 따라서 컴퓨터 프로그램, 조사 보고서, 신속한 스포츠 스코어, 주식 시장 정보 등과 같은 금전적 가치가 있는 콘텐츠를 영리목적으로 개발하고 공급하는 자는 미리 정확한 라이센싱 계약을 하려할 것이고, 그들이 공급하는 상품을 고의로 부족하게 하여 수입을 늘리려 할 것이다. 콘텐츠 공급업자가 클라이언트 소프트웨어와 부호화된 콘텐츠 또는 콘텐츠를 인터프리트하기 위해 필요한 플러그인 프로그램을 제공하는 경우에는, 콘텐츠 그 자체에 대한 액세스 또는 플러그인 프로그램에 대한 액세스를 제한하거나 이 두가지에 대한 액세스를 모두 제한하는 것이 사용될 수 있다.
통상적인 액세스 제한은 웹의 고유 특징인 개방되고 방해없는 통신을, 방해하는 것이라는 현재의 용례를 나타내고 있다. 이러한 액세스의 제한에는, 사용자에게 패스워드 키를 부여하거나 특정 컴퓨터에 부여된 하드웨어적 식별 번호에 패스워드 키를 부여하여 소프트웨어나 콘텐츠에 걸린 제한을 해제하도록 하는 방법이 있다. 패스워드 메커니즘은 특정의 개인 및/또는 특정의 컴퓨터에 대해 소프트웨어의 사용을 효율적으로 제한할 수는 있는 반면, 웹의 방해없는 통신이 방해될 수 있고 보다 광범위한 사용을 위한 기준화(基準化)에 실패할 수 있다. 소프트웨어나 콘텐츠에 걸린 제한을 풀기 위해서는 콘텐츠의 사용자나 공급업자 모두에게 패스워드가 제공되어야 한다.
다른 메커니즘으로는, 고유 라이센스 키를 포함하는 "덩글(dongle)"이라고 통상적으로 알려진 착탈 가능한 하드웨어적 장치가 있다. 이 장치는 클라이언트 컴퓨터의 범용 통신 포트나 특정 인터페이스에 접속되도록 구성되어 있다. 소프트웨어 프로그램내의 루틴은 소프트웨어가 액티브될 때마다 이 착탈 가능한 장치에 포함된 특정 코드를 탐색하여, 소프트웨어가 구동될 수 있는지 여부를 판정한다. 마찬가지로, 이러한 메커니즘은 특정의 개인 및/또는 특정의 컴퓨터에 대해 소프트웨어의 사용을 효율적으로 제한할 수는 있지만, 하드웨어 장치를 설치해야 한다는 이유 때문에 광범위한 사용에 대한 기준을 제공하지 못하고 방해없는 통신에 방해가 된다.
네트워크화된 컴퓨터 환경은 라이센싱에 대한 요구가 더 필요하다. 전통적인 개인용 컴퓨터 소프트웨어 라이센스의 조건으로는 네트워크상의 소프트웨어의 사용을 적절하게 커버하지 못할 수 있으며, 이러한 소프트웨어의 사용을 라이센스 권리자(licensor)에 대한 추가 보상 없이 임의로 허가해 줄 수 있다. 예를 들어, 어떤 클라이언트에서의 사용자가 다른 클라이언트에서 구동하는 소프트웨어를 사용하는 경우, 라이센스의 형식이 필요하다. 한가지 해결책은 네트워크에 접속된 어떠한 컴퓨터의 소프트웨어라도 모두 사용할 수 있는 라이센스를 허락하는 것이다. 이것은 제한없는 사이트 라이센스(unlimited site license)로 알려져 있다. 다른 방법으로서, 소프트웨어가 구동될 컴퓨터 각각에 대해 라이센스를 요구하도록 하는 제한된 사이트 라이센스가 있다. 이 방법은 라이센스 권리자의 수입이 증가하는 반면, 라이센스 사용자(licensee)가 실제 필요한 것보다 더 많은 요금을 지불할 수도 있다. 또, 이 메커니즘은 네트워크에 노드를 추가하여야 하는 경우 라이센스 권리자와 접촉하기 위해서는 라이센스 사용자의 협조가 필요하다. 자동화되지 않은 추가 메커니즘에는 프로그램 사용을 모니터링하고 라이센스 승낙을 증명하는 것이 필요할 수 있다. 예를 들어, 라이센스 권리자는 라이센스 사용자가 사용 기록을 정확하게 유지하는 것을 요구할 수 있으며, 프로그램 사용을 감사(audit)하기 위해 라이센스 사용자의 사이트를 주기적으로 조사할 수 있는 권리를 요구할 수 있는데, 이러한 과정은 매우 비효율적이며 사생활 침해적인 것이다.
단말 사용자(end-user)를 위한 프로그램과 콘텐츠를 생성하기 위해, 라이센스 권리자가 라이센스 사용자에 의해 사용되는 툴(tool)을 개발한 경우에도 문제점이 있다. 라이센스 권리자는 라이센싱(사용허락)된 툴의 사용에 대해 정확한 계산을 요구할 수 있으며, 단말 사용자는 패스워드와 제한없는 콘텐츠에 방해없이 액세스하기를 원할 것이다. 따라서, 라이센스 사용자는 라이센스 요금을 결정하기 위한 정확한 계산을 라이센스 권리자에게 제공하는 것과, 단말 사용자가 액세스를 용이하게 하도록 하는 것의 진퇴양난에 빠져있다. 라이센스 권리자를 만족시키는 현재의 메커니즘은 단말 사용자의 입장에서는 불리하고, 라이센스 권리자에게는 유리하다.
또, 콘텐츠 개발자는 단말 사용자에 대해 다단계의 라이센싱을 원할 수 있다. 이러한 라이센싱의 단계들은 평가 또는 비영리적 사용과 같은 사용을 위해 제품에 자유롭게 액세스할 수 있는 것에서부터, 라이센싱된 제품의 사용에 따라 요금이 부과되는 영리목적의 사용을 위한 액세스까지 있을 수 있다.
통상적인 액세스 제한은 액세스의 제한을 받는 사용자가 액세스 제어 메커니즘으로 "등록"하여야 하고 또는 전자적으로 번거로운 절차를 거쳐야 하기 때문에, 사용자가 자유롭게 액세스하는 것을 방해하는 것으로 구성되어 있다. 이러한 제한은 라이센싱 승낙을 모니터링하기 위해 요구되는 부담 때문에 요금이 부과되는 액세스에 대한 장애가 된다. 따라서, 현재의 라이센싱 기술로서는 이러한 여러가지 라이센싱 목적을 달성할 수 있는 일반적인 메커니즘을 제공하지 못한다.
본 발명은 컴퓨터 프로그램 및 기타 다른 디지털 콘텐츠(digital content)의 사용을 제어 및 모니터링하는 시스템 및 방법에 관한 것으로서, 더 상세히 말하면, 컴퓨터 프로그램 및 기타 다른 디지털 콘텐츠에 라이센싱 정보를 구현(embed)하고, 분산형 컴퓨터 환경에서 이러한 정보에 액세스하는 것을 제어하기 위한 시스템 및 방법에 관한 것이다.
본 발명의 상기 이점들은 첨부 도면과 이하의 상세한 설명을 참조하여 용이하게 알 수 있을 것이다.
도 1은 본 발명에 따라 라이센싱된 콘텐츠를 수신하기 위한 플러그인 프로그램 또는 애플리케이션을 가진 컴퓨터 시스템을 나타내는 블록도.
도 2는 본 발명에 따라 콘텐츠를 제공하는 위한 서버와 라이센싱된 콘텐츠를 수신하기 위한 플러그인 프로그램 또는 애플리케이션을 가진 컴퓨터 시스템을 나타낸 블록도.
도 3은 본 발명에 따라 {License...} 형식의 배치를 나타낸 블록도.
도 4는 본 발명에 따른 라이센스 서버와, 라이센싱된 콘텐츠를 제공하기 위한 서버, 라이센싱된 콘텐츠를 수신하기 위한 플러그인 프로그램 또는 애플리케이션을 가진 컴퓨터 시스템간의 상호작용을 나타낸 블록도.
도 5는 본 발명의 원리에 따라 처리되는 콘텐츠에 구현된 라이센스의 타입을 판정하는 경우 플러그인 프로그램에 의해 실행되는 단계를 간단하게 나타낸 흐름도.
도 6은 암시적 라이센스를 증명할 때 본 발명의 플러그인 프로그램에 의해 실행되는 단계를 간단하게 나타낸 흐름도.
도 7은 콘텐츠 인증자를 포함한 암시적 라이센스를 증명할 때 본 발명의 플러그인 프로그램에 의해 실행되는 단계를 간단하게 나타낸 흐름도.
도 8은 콘텐츠 인증자를 포함한 암시적 라이센스를 증명하고 액세스 정책을 판정할 때 본 발명의 플러그인 프로그램에 의해 실행되는 단계를 간단하게 나타낸 흐름도.
도 9는 콘텐츠 인증자를 포함한 명시적 라이센스를 증명하고 유효한 라이센스 결과와 유예 기간의 캐시의 사용을 구체화할 때 본 발명의 플러그인 프로그램에 의해 수행되는 단계를 간단하게 나타낸 흐름도.
도 10은 콘텐츠 인증자를 포함한 명시적 라이센스를 증명하고 유효한 라이센스 결과와 유예 기간의 캐시의 사용을 구체화할 때 본 발명의 원리에 따라 서버에 의해 수행되는 단계들의 일부를 간단하게 나타낸 흐름도.
도 11은 라이센싱된 콘텐츠를 수신하기 위한 플러그인 프로그램 또는 애플리케이션, 라이센싱된 콘텐츠를 제공하기 위한 서버 및 본 발명에 따라 2개의 라이센스 서버를 갖는 컴퓨터 시스템간의 상호작용을 나타낸 블록도.
도 12는 여러 레벨을 갖는 라이센싱 동안 생성된 환경을 나타낸 블록도.
본 발명은 콘텐츠를 처리하는데 사용되는 플러그인 프로그램, 애플리케이션, 애플릿 또는 기타 다른 소프트웨어에 의해 제공되는 기능에 대한 액세스를 라이센싱하고 콘텐츠를 라이센싱하기 위한 신규하고 개선된 방법 및 시스템을 제공한다. 따라서, 본 발명은 요금이 부과되는 그리고 요금이 부과되지 않는 인터넷상의 콘텐츠의 분배를 용이하게 한다.
본 발명은 라이센싱 형식으로서 본 명세서에 언급된 라이센싱 데이터를 콘텐츠내에 적용함으로써 달성된다. 라이센싱 형식 그 자체는 이용 가능하도록 만들어진 콘텐츠의 라이센스 타입과 관련되어 있다. 콘텐츠를 처리하도록 만들어진 소프트웨어는 콘텐츠에 구현된 라이센스 형식을 인식하고 확인하는 루틴과, 라이센스의 증명이나 조건에 따라 콘텐츠에 대한 액세스 처리를 제한하는 루틴을 포함한다.
따라서, 본 발명의 이점은, 웹 콘텐츠의 인터프리테이션에 이용되는 소프트웨어의 공급업자가 소프트웨어나 콘텐츠에 대한 액세스의 제어 없이 영리목적의 소프트웨어의 사용에 대해 라이센싱할 수 있는 라이센싱 메커니즘을 지원한다는 것이다.
본 발명의 다른 이점은 소프트웨어의 익명의 사용과 소프트웨어의 비영리적 또는 다른 특정 사용을 허락할 수 있다는 것이다.
본 발명의 또 다른 이점은, 라이센스 권리자가 라이센싱된 용도를 모니터링할 수 있고, 라이센스를 원할 때 취소할 수 있으며, 라이센싱된 콘텐츠에 의해 소프트웨어의 용도에 따라 요금을 부과할 수 있다는 것이다.
또, 본 발명의 이점은 비영리적 사용을 위한 콘텐츠라는 것을 나타내는 콘텐츠에 구현된 평문(plain-text) 주장을 이용한다는 것이다.
본 발명의 또 다른 이점은 상호종속적인 콘텐츠 모듈에 관한 개별 라이센스를 여러 라이센스 권리자가 모니터링할 수 있다는 것이다.
본 발명의 다른 이점은 당업자라면 본 발명의 실시예의 상세한 설명과 도면을 참조하여 명백하게 알 수 있을 것이다.
다음의 상세한 설명은 본 발명의 바람직한 실시예를 예시적으로 나타내는 것이다. 본 발명의 많은 다른 변형이 가능하다는 것을 알 수 있을 것이다.
본 발명은 광범위한 사용과 컴퓨터 프로그램의 분배를 용이하게 하고, 이러한 컴퓨터 프로그램의 개발자들에게는 금전적인 보수를 받기위한 메커니즘을 제공한다. 본 발명은 프로그램을 필요로 하는 콘텐츠에 대한 액세스를 제어하기 위해 프로그램의 동작 전체에 대한 제어를 유지함으로써 달성된다. 따라서, 예를 들면, 프로그램의 비영리적 사용자는 컴퓨터 프로그램의 조작에 대해 자유롭게 액세스(제한이 있을 수 있다)할 수 있고, 영리적 사용자는 컴퓨터 프로그램의 조작에 대한 액세스에 대해 라이센스 요금을 지불하여야 할 것이다.
제1 실시예에 있어서, 본 발명은 디지털 콘텐츠를 처리하기 위해 컴퓨터에 서 구동되는, 자유롭게 분배된 소프트웨어 모듈, 프로그램 또는 플러그인 프로그램을 구비한다. 콘텐츠를 처리하는 동안, 소프트웨어 모듈은 이하 기술되는 특정의 라이센싱 형식을 구성하는 데이터를 탐색한다. 이 라이센싱 형식은 인증될 디지털 콘텐츠의 처리를 위해 콘텐츠에 존재하고 있어야 한다.
소프트웨어 모듈은 라이센싱 형식을 인터프리트하고 비영리적인 또는 영리적인 콘텐츠의 특성과 같은 라이센싱 형식에서의 정보에 기초하여 콘텐츠의 처리를 인증한다. 이 소프트웨어 모듈은 비영리 라이센싱 형식의 내장 언더스탠딩(built-in understanding)을 가지며, 컴퓨터 프로그램으로의 자유로운 액세스를 허용할 수 있다. 이 소프트웨어 모듈은 영리적 특성의 라이센싱 형식을 인식하고, 컴퓨터 프로그램에 액세스하기 전에 추가의 라이센싱 증명 단계(영리 목적의 라이센스 요금의 지불을 보증하기 위한 것이다)를 부과할 수 있다. 따라서, 이 소프트웨어 모듈은 상이한 타입의 라이센스 형식의 내장 언더스탠딩을 가지며, 영리 콘텐츠에 의해 컴퓨터 프로그램에 대한 액세스를 제어하면서 비영리 콘텐츠에 의해 컴퓨터 프로그램에 즉각적인 액세스를 허용할 수 있다. 이것은 비영리 목적으로 컴퓨터 프로그램에 자유롭게 액세스하는 것을 허용함으로써 콘텐츠의 개발을 촉구하면서, 영리 목적의 라이센스 요금을 요구함으로써 금전적 보수를 받기 위해 컴퓨터 프로그램의 개발자를 위한 메커니즘을 제공한다.
도 1의 (a)와 (b)는 본 발명을 구현하는 컴퓨터 프로그램의 예시적인 실시예를 나타내는 블록도이다. 이 시스템은 컴퓨터(100)를 이용하여 운영 시스템(운영 체제라고도 한다; 101)을 구동시킨다. 컴퓨터(100)는 컴팩 컴퓨터사, IBM 및 애플에서 판매되는 통상의 개인용 컴퓨터도 될 수 있다. 컴퓨터(100)는 게임 콘솔, 셋톱 박스 또는 인터넷 애플리케이션과 같은 다른 장치가 될 수도 있다. 운영 시스템(101)은 마이크로소프트 윈도우즈 98(Microsoft Windows 98), 마이크로소프트 윈도우즈 NT(Microsoft Windows NT), 리눅스(Linux), 애플 OS(Apple OS) 등의 기본 컴퓨터와 호환 가능한 어떠한 운영 체제도 가능하다.
도 1의 (a)를 참조하여 보면, 본 발명의 제1 실시예는 플러그인(103)이 적용되는 것으로서 브라우저(102)를 이용한다. 도 1의 (b)는 본 발명의 다른 실시예를 나타내고 있는데, 브라우저(102)와 플러그인(103) 대신에 애플리케이션(104)이 제공되어 있다. 도 1의 (b)에 도시된 실시예에 있어서, 컴퓨터 프로그램으로의 액세스를 제어하기 위한 메커니즘은 컴퓨터 프로그램 자체에 포함되어 있지만, 당업자라면 액세스 제어 부분이 기본 컴퓨터 프로그램으로부터 분리될 수 있다는 것을 알 수 있을 것이다.
브라우저와 플러그인의 결합 또는 이와 동등한 기능을 하는 애플리케이션(104)은 컴퓨터(100)에 의해 수신된 콘텐츠를 인터프리트, 실행 기타다르게 처리하도록 구성되어 있으며, 특히, 본 발명에 따라 라이센싱 메커니즘을 인식하고 이에 따라 콘텐츠를 처리하도록 구성되어 있다. 나머지 설명은 블라우저(102)와 관련하여 동작하는 플러그인(103)에 관한 것이지만, 당업자라면 애플리케이션(104)이 블라우저와 플러그인에 대신하여 사용될 수 있다는 것을 알 수 있을 것이다.
도 2에 있어서, 플러그인(103)의 일반적인 동작은 표준 통신 기술을 이용하여 서버(200)로부터 수신된 콘텐츠(201)를 처리하는 것으로 표시되어 있다. 콘텐츠(201)는 플러그인(103)이 궁극적으로 처리하는 랭귀지(언어)나 표현(예컨대, CURL 랭귀지)으로 부호화되어 있고, 웹 페이지나 프로그램 모듈과 같은 단일 구성 성분이나 관련 구성 성분 세트를 구비할 수 있다. 본 발명의 원리에 따라, 다중의 구성 성분이 개별적으로, 그룹으로 또는 이들의 조합으로 뿐만 아니라 전체적으로 결합되어 라이센싱될 수 있다.
본 발명에 따라, 플러그인(103)을 동작시키도록 라이센싱된 콘텐츠는 이 콘텐츠내의 특정 라이센싱 형식이나 구성에 의해 구분된다. 라이센싱 형식은 콘텐츠 자체를 부호화하기 위해 사용된 표현과 호환될 수 있도록 부호화되는 것이 좋다.
간단히 나타내기 위해, 본 발명은 본 명세서에서 암호화되지 않은 평문 CURL 랭귀지 소스 코드를 이용하여 기술되어 있다. CURL 랭귀지 구성은 중괄호로 구분되는 것이 일반적이다. 예를 들어, 9의 제곱(square)은 { square 9.0 } 과 같은 CURL 랭귀지를 이용하여 연산될 수 있다.
따라서, CURL 구문 약정을 이용하는 적당한 라이센싱 형식은 { Licensed...} 와 같은 CURL 랭귀지 구조를 구성할 수 있다. 여기서, 작은 점은 이하 기술될 추가의 파라미터들을 나타낸다.
대체 가능한 다른 표현들(예컨대, HTML, Java, XML), 데이터 형식(예컨대, 텍스트, 그래픽, 실행 코드) 및 부호화(텍스트 부호화, 이진 부호화, 암호 부호화)의 변형이 본 발명에 사용될 수 있다. 본 발명을 지원하기 위한 이러한 표현들과 부호화를 확장하는 것은 어떠한 통상의 대체 가능한 다른 구문을 사용해도 된다. 일반적으로, 이러한 확장은 CURL 소스 코드에 사용되는 라이센스 형식이 CURL 랭귀지를 확장하는 것과 유사한 방식으로 확장되는 랭귀지나 표현의 구문 규약이 존재함으로써 제안된다.
HTML이나 XML 등에서의 대응 라이센스 형식은 구문을 사용할 수 있다.
<LICENSED> . . . </LICENSED>
반면에, C나 Java 등에서는 Licensed . . .; 와 같은 랭귀지 구조 형식이 가능할 것이다.
마찬가지로, 이진 표현의 확장(컴파일된 클래스 파일, ActiveX 콘트롤 및 동적으로 로딩된 라이브러리 등)은 현존하는 표현 구조를 수용함으로써, 추가된 정보가 남아있는 콘텐츠와 명확하게 구분이 될 수 있다. 이러한 확장은 당업자에게 명백할 것이다.
표현이 어떤 것이든간에, 플러그인(103)은 확장을 위해 주어진 모든 파일에서 적절한 {Licensed ...} 형식을 검출하고, 적당한 {Licensed ...} 형식이 빠져 있으면 어떤 파일이라도 그 실행을 거부하도록 구성되어 있다. 이러한 실행 거부는 클라이언트 머신 사용자, 콘텐츠 소스 또는 플러그인 제공자에게 보고될 수 있다. 또, 유효한 {Licensed ...} 형식이 부족한 파일은 디폴트 또는 제한된 동작에 따라 처리될 수 있다. 예를 들어, 플러그인 기능은 제한이 가능하며, 플러그인은 특정의 시간 동안만 동작하도록 할 수 있다. 또한, 본 발명은 {Licensed ...} 형식에 상이한 또는 추가 정보를 포함함으로써 상이한 라이센싱 스킴을 제공할 수 있다.
본 발명의 원리에 따라, 플러그인(103)은 콘텐츠(201)의 유용한 처리를 콘텐츠(201)에 포함된 {Licensed ...} 형식을 발견할 때까지 지연시킨다. 일반적으로, 이러한 {Licensed ...} 형식은 각 콘텐츠 파일의 개시 부분에 있게 될 것이다. 또, 이 콘텐츠의 일부 부분은 {Licensed ...} 형식의 검출 및 증명과 같이 처리될 수 있다.
{Licensed ...} 형식은 콘텐츠(201)에 대한 액세스, 플러그인(103) 자체에 대한 액세스 또는 콘텐츠와 플러그인 모두에 대한 액세스를 제어하기 위해 플러그인(103)에 의해 이용된다. 다시 말해서, {Licensed ...} 형식(203)은 플러그인(103)에 의해 처리되어, 콘텐츠(201)가 처리되는 정도를 판정한다. {Licensed ...} 형식(203)에 있는 정보에 따라, 콘텐츠(201)의 최종 처리와 플러그인(103)의 기능이 제어될 수 있다. 따라서, 콘텐츠(201)가 클라이언트(100)에 의해 인터프리트될 때, 플러그인(103)으로 콘텐츠가 전달되고, {Licensed ...} 형식(203)이 추출 및 처리되며, 플러그인(103)은 {Licensed ...} 형식(203)에 의해 허용되는 한도까지 콘텐츠(201)를 실행 또는 인터프리트한다.
도 3은 본 발명의 원리에 따른 라이센스를 예시적으로 나타낸 실시예이다. {Licensed ...} 형식(300)은 다음과 같은 다양한 정보를 포함할 수 있다.
Identity of License(라이센스의 식별: 301) - 이 정보를 라이센스를 식별하는 것이다. 본 발명의 일실시예에 있어서, 이 정보는 평문을 포함하지만 다른 실시예에서는 암호화시킬 수도 있다. 라이센스 사용자는 플러그인(103)에 의해 처리될 콘텐츠를 제공하는 사람, 예컨대 콘텐츠 개발업자가 될 수 있다.
Legal Assertion(법적 주장: 302) - 이것은 라이센스의 법적 형식을 식별하는 것이다. 제1 유형의 라이센스 형식에 있어서, 이 필드는 라이센싱된 콘텐츠가 비영리 목적의 라이센스하에서 로열티의 지불없이 분배될 수 있다는 것을 나타낸다. 다른 유형의 라이센스 형식에 있어서, 이 필드는 라이센스의 유형을 특정한다. 주장의 형식은 콘텐츠의 사용 목적이 타당해야 하며, 라이센스의 특징에 관한 법적 주장을 포함하는 평문열인 것이 바람직하다. 이 법적 주장은 라이센스 사용자의 법적 권리가 타당해야 하고, 라이센스 사용자를 지배하는 법률이 일치하여, 라이센스 권리자의 권리를 법적으로 실행하는데 사용될 수 있어야 한다는 것을 알 수 있을 것이다.
Encoded/Encrypted Data(부호화/암호화된 데이터: 303) - 라이센싱 형식(300)의 이 부분은 다양한 데이터를 포함하며 암호화된 형식으로 제공될 수 있다. 이 데이터는 유유인코드(uuencode)와 같은 공지된 기술을 이용하여 평문 문자열로서 부호화될 수 있다. CURL 소스 코드를 사용하기 위한 예시적인 라이센싱 형식에 있어서, 데이터가 인용되어 랭귀지의 구문적으로 법적인 요소(즉, 인용된 문자열)가 되도록 한다. 부호화된 이진 데이터에 의해 제공되는 중요한 기능은 다음과 같다.
1. 라이센스와 관련된 라이센스 사용자의 식별과 특정한 계약상의 합의사항의 보안.
2. 콘텐츠 및/또는 라이센싱 형식의 변경이나 변형을 검출하기 위한 콘텐츠의 인증.
3. 콘텐츠에 적용되는 라이센스의 콘텐츠를 기억.
다음은 부호화/암호화될 수 있는 데이터를 예시적으로 나타낸 것이다.
Licensee(라이센스 사용자: 304) - 라이센스의 신원증명(동일성)을 나타낸다. 이것은 라이센스 사용자의 동일성을 확인하는데 사용될 수 있으며, 문자열이나 뉴메릭 식별자를 사용할 수 있다. 예를 들어, 의심의 여지가 있는 라이센스 권리자/라이센스 사용자와 관련된 특정의 계약이 고유 식별자 C로 할당될 수 있다. {Licensed ...} 형식(300)에서 식별자 C의 신뢰성 있는 부호화가 라이센스 사용자와 계약상의 협의사항을 식별하는데 사용되는데, 이것이 주의할 첫번째 기능이다.
Time Out Period(타임아웃 기간: 305) - 라이센스가 유효한 기간을 말하며, 라이센스의 유효 상태의 최적화로서 사용될 수 있다.
Grace Period(유예 기간: 306) - 라이센스의 증명없이 콘텐츠의 사용을 허용하는 시간 구간을 말하며, 라이센스의 유효 상태의 최적화로서 사용될 수 있다.
Licensed Modules(라이센싱된 모듈: 307) - 라이센스의 확장이다. 이 데이터는 모듈 단위로 플러그인 기능에 액세스하는 것을 제어하기 위한 메커니즘의 일부로서 사용될 수 있다. 이에 의하여, 플러인(103)의 기능의 일부만을 라이센싱하는 것이 가능하다.
Verification Site(s)(증명 사이트: 308) - 콘텐츠 라이센스를 위한 인증 및 증명 서버가 발견될 수 있는 하나 이상의 위치를 말하며, 이하 상세히 개시한다.
Unique ID(고유 ID: 309) - 최종 사용자를 식별하는데 사용되는 식별자를 말한다. 이 최종 사용자는 콘텐츠를 실제로 다운로딩하는 사용자를 말한다. 이에 의하여, 콘텐츠의 실제 최종 사용자에 의해 그 용도를 추적하기 위한 메커니즘이 가능하다.
Authentication Code(인증 코드: 310) - 라이센스에 포함된 코드가 변경되지 않았다는 것을 증명하기 위한 정보를 말하며, 공지된 기술[암호 블록 체인(cipher-block chaining) 등]을 이용하여 파일의 나머지 다른 부분으로부터 계산된 메시지 인증 코드(Message Authentication Code: MAC)로서 구현되고, 이것이 주의할 두번째 기능이다.
License Authentication Code(라이센스 인증 코드: 311) - 라이센싱된 디지털 콘텐츠의 조건을 식별하는데 사용되는 정보를 말하며, 라이센스의 조건의 증명으로 사용될 수 있는 라이센스의 텍스트로부터 계산된 MAC 또는 암호 해시(cryptographic hash) 등을 포함할 수 있다. 이 암호 해시는 디지털적으로 시간이 찍혀나오고 관련 당사자들의 사인이 있는 것도 있다.
이 기술분야의 당업자라면, {Licensed ...} 형식(300)에 데이터 필드를 추가할 수 있다는 것을 알 수 있을 것이다.
본 발명의 원리에 따라, {Licensed ...} 형식(300)에 의해, 라이센스 권리자는 콘텐츠에 대해서 상이한 유형의 라이센싱 스킴 또는 정책을 구현할 수 있다. 예를 들어, 플러그인 개발자는 비영리 목적용으로 또는 제품 평가용 등의 특정 목적을 위해 플러그인의 용도를 정하는 라이센싱 정책을 선택할 수 있다. 이러한 라이센싱 정책을 지원하기 위해, 플러그인(103)은 추가의 증명이 없이도 {Licensed ...} 형식(300)의 변형 형식을 수용할 수 있다. 이러한 유형의 {Licensed ...} 형식은 암시적 라이센스(implicit license)라고 하는데, 플러그인이 액세스를 허용하기 위한 충분한 내장 정보를 갖기 때문이다.
예시적으로, 암시적인 {Licensed ...} 형식은 다음과 같이 구성될 수 있다.
{Licensed for non-commercial use under the terms of Curl Corpoation contract number C00001.}
이 형식은 Curl Corporation이 추가의 라이센싱 협의사항을 필요로 하지 않는 콘텐츠가 비영리 목적에 해당하는 용도가 적절한 법적으로 효력을 갖는 주장인 평문만을 포함한다. 이 방식에 있어서, 라이센스 권리자는 콘텐츠 라이센스의 비영리 목적을 명확하게 나타내는 {Licensed ...} 형식내의 평문의 법적 주장에 의존한다. 이 법적 주장은 콘텐츠를 보면 누구나 쉽게 볼 수 있고, 콘텐츠의 비영리 목적을 명확하게 나타내게 된다. 또한, 콘텐츠가 처리될 때, 팝업 다이얼로그 박스 또는 스플래시 스크린이 비영리 목적을 사용자에게 알려주도록 디스플레이될 수 있다.
플러그인 개발자는 영리 목적 또는 보안 등의 특정의 제어된 분배 목적을 위해 플러그인의 사용을 권장하는 라이센싱 정책을 선택할 수도 있다. 따라서, 본 발명의 다른 실시예에 있어서, 플러그인(103)은 {Licensed ...} 형식(300)의 특정 변형에 대한 추가의 증명을 필요로 하도록 구성될 수 있다. 이러한 유형의 {Licensed ...} 형식은 플러그인(103)이 액세스를 허용하기 위한 내장 정보가 충분하지 않기 때문에 명시적 라이센스(explicit license)라고 하며, 라이센스 형식을 증명하기 위한 외부 정보에 의존하여야 한다.
예시적으로, 명시적인 {Licensed ...} 형식은 다음과 같이 구성될 수 있다.
{Licensed by XYZ Computer Corporation
|"101010111001 . . . 001010100100001001001"|.}
여기서, XYZ Computer Corporation은 도 3의 추가적으로 암호화된 정보(303)를 나타내는 이진수열과 라이센스 사용자의 동일성을 식별한다. 이 {Licensed ...} 형식은 라이센스 형식 그 자체의 콘텐츠에 의해 이전 형식과 구분될 수 있다. 예를 들어, 2개의 예시적인 {Licensed ...} 형식의 두번째 단어나 조건은 상이한데, 하나는 'for'이고 하나는 'by'이다. {Licensed ...} 형식을 구분하는 다른 수단들은 당업자가 명백히 알 수 있을 것이다.
명시적 라이센스 형식이 권고되었을 때, 암호화된 정보(303)는 플러그인(103)에 의해 해독되고, 라이센스를 증명하기 위해 플러그인(103)에 의해 추가 동작이 수행된다. 플러그인(103)은 콘텐츠가 편집되지 않았다는 것 또는 다른 방법으로 변경되지 않았다는 것을 증명할 수 있다. {Licensed ...} 형식에 의해 인용된 라이센스의 현재의 상태는 라이센스 권리자에 의해 유지되는 라이센스서버와 단순히 메시지를 교환함으로써 증명될 수 있다.
도 4는 본 발명의 원리에 따라, 클라이언트(100), 라이센스 서버(403) 및 콘텐츠 서버(200) 사이의 정보 흐름을 나타내고 있다. 클라이언트(100)는 인터넷 등의 네트워크를 통해 콘텐츠(201)를 위한 요청(401)을 콘텐츠 서버(200)로 전송한다. 콘텐츠 서버(200)는 요청된 콘텐츠(201)를 포함하는 클라이언트(100)로 응답(402)을 전송한다. 플러그인(103)은 {Licensed ...} 형식을 위해 콘텐츠(201)를 스캔한 다음에, 콘텐츠(201)의 실제 실행, 인터프리트 또는 처리를 수행한다. {Licensed ...} 형식이 발견되었으면, 이 형식은 {Licensed ...} 형식의 콘텐츠에 따라 플러그인(103)에 의해 인터프리트 및 증명된다.
명시적으로 라이센싱된 콘텐츠에 대해, {Licensed ...} 형식(300)은 도 3의 코드화된 정보(303)로 표시된 것과 같은 적어도 일부가 부호화된 정보를 포함한다. 이러한 형식의 라이센스를 증명하기 위해, 플러그인(103)은 {Licensed ...} 형식(300)과 이 형식에 포함된 부호화된 정보(303)에 기초하여 라이센스 증명 요청(404)을 생성한다. 라이센스 증명 요청(404)은 인증 서버(403)로 전송된다.
인증 서버(403)는 콘텐츠 서버(200)와 동일한 서버로 구성할 수 있지만, 본 실시예에서, 인증 서버(403)는 별개의 컴퓨터이다. 인증 서버(403)는 클라이언트(100)로부터 라이센스 증명 요청(404)을 수신하고, 이 라이센스 증명 요청(404)에 있는 정보와, 이하 추가로 기술될 라이센스 데이터베이스(406)의 콘텐츠에 따라 응답(405)을 생성한다.
도 5 내지 10에 있는 흐름도는 {Licensed ...} 형식을 증명할 때플러그인(103)의 실시예에 의해 수행되는 예시적인 단계들을 나타내고 있다. 도 5를 참조하여 보면, 플러그인(103)은 개시 단계인 검색 단계를 수행하고, {Licensed ...} 형식에 의해 지정된 라이센스의 유형을 판정한다. 단계(500)에서, 플러그인(103)은 서버에 위치한 콘텐츠를 즉시 검색할 개시 상태에 있게 된다. 단계(501)에서, 플러그인(103)은 서버로부터 콘텐츠를 검색한다. 검색은 사전에 로딩되어 있는 콘텐츠의 동작 하에서 또는 사용자에 의해 개시될 수 있다. 예를 들어, 사용자는 하이퍼텍스트 링크를 클릭할 수 있으며, 사전에 로딩되어 있는 콘텐츠는 검색될 추가의 콘텐츠를 참조할 수 있다. 본 발명의 통상의 실시예에 있어서, 서버로부터 콘텐츠를 검색하기 위한 실제 트랜스포트 메커니즘은 기초 브라우저와 운영 체제에 의해 제공될 수 있지만, 본 발명의 다른 실시예에서 플러그인은 검색 메커니즘을 포함할 수 있다는 것을 예상할 수 있다. 예컨대, 자립형 인터넷 애플리케이션이나 고객 셋톱 박스를 제어하기 위한 프로그램은 검색 메커니즘을 직접 구현하는 코드를 포함할 수 있다.
단계(502)에 있어서, 플러그인은 {Licensed ...} 형식을 위한 콘텐츠를 스캔한다. 일반적으로, 이 형식은 파일의 최상부에 위치하여 콘텐츠를 스캐닝하는데 필요한 시간을 최소화할 것이다. 콘텐츠에 {Licensed ...} 형식이 없다면, 단계(504)에서 에러로서 신호처리되고, 단계(505)에서 플러그인은 루틴을 빠져나오게 된다.
적어도 하나의 {Licensed ...} 형식이 발견되었다고 하면, 단계(506)에서 라이센스의 유형을 판정하기 위해 {Licensed ...} 형식이 디코딩된다. 플러그인은단계(507)에서 콘텐츠에서 발견된 {Licensed ...} 형식의 유형에 따라 분기된다. 본 명세서에 개시된 바와 같이, 라이센스에는 2개의 기본적인 유형이 있는데, 암시적 유형과 명시적 유형이다. 그러나, 다른 형태의 라이센스도 가능하다는 것을 알 수 있을 것이다. 라이센스가 암시적이라고 한다면 단계(508)로 가게 되고, 라이센스가 명시적이라고 한다면 단계(509)로 가게 된다.
도 6에 있어서, {Licensed ...} 형식이 암시적 라이센스를 특정한다면, 이 라이센스의 증명이 검사된다. 단계(510)에서, 암시적 라이센스는, 예를 들어 법적 주장을 포함하는 {Licensed ...} 형식에서의 문자열과 플러그인에 의해 보유된 문자열을 단순히 매칭시킴으로써 검사된다.
암시적 라이센스를 검사하는 다른 방법으로는 플러그인에 의해 저장된 값에, 법적 주장에 적용된 해시 또는 다른 함수의 결과를 비교하는 방법이 있다.
단계(511)에 있어서, 라이센스의 검사에 실패한다면, 플러그인은 단계(512)에서 모든 필요한 에러 동작을 실행하고, 단계(513)에서 종료한다.
라이센스의 검사가 성공한다면, 플러그인은 라이센스 조건에 의해 허용되는 한도까지 콘텐츠에 대해 그리고 플러그인에 의해 제공된 기능에 대해 동작한다. 일단 플러그인이 콘텐츠에 대해 동작하는 것이 허용되면, 단계(515)로 종료된다.
도 7은 콘텐츠가 MAC에 의해 보안된 암시적 라이센스에 대한 동작에 관한 본 발명의 다른 실시예를 나타낸다. 단계(516)에서, 상기 개시된 바와 같이 암시적 라이센스가 검사된다. 단계(517)에서 매칭이 실패한다면, 단계(518)에서 플러그인은 필요한 에러 동작을 실행하고, 단계(519)로 종료한다. 그러나, 라이센스 검사가 성공한다면, 단계(520)에서 플러그인은 콘텐츠로부터 MAC를 계산하여, 이 값을 {Licensed ...} 형식에서 발견된 MAC와 비교한다. 만일 단계(521)에서 비교가 실패한다면, 콘텐츠가 변형되었다는 것을 나타내기 때문에, 이에 의한 동작이 이루어져서는 안되며, 단계(522)에서 에러 상태가 신호처리되어 단계(523)에서 종료한다. 만일 단계(521)에서 비교가 성공한다면, 단계(525)에서 플러그인은 허용되는 한도까지 콘텐츠에 대해 동작하고 단계(515)로 종료한다. 당업자라면, 이와 유사한 방식으로 다른 많은 기능이 {Licensed ...} 형식에 의해 제공될 수 있다는 것을 알 수 있을 것이다.
도 8에 있어서, 바람직한 실시예를 보다 확장한 것이 개시되어 있다. 도 8에 개시되어 있는 단계들은 단계(524)가 추가된 것 외에는 도 7에 있는 단계들과 동일하다. 이 단계(524)에서 플러그인은 라이센스에 대한 적절한 액세스 정책을 결정한다. 이 액세스 정책은 플러그인을 허용 가능한 기능성의 집단으로 제한할 수 있다. 예를 들어, 기본적인 기능 집단이 비영리 목적의 라이센스하에서 이용 가능하도록 만들어질 수 있으며, 이와 동시에, 이하 개시된 것과 같이, 명시적 라이센싱 방식하에서 인에이블될 수 없는 경우에 보다 진보된 특징들로의 액세스를 보류하게 된다.
도 9는 라이센스가 명시적 라이센스라고 판정되는 경우 플러그인에 의해 수행되는 단계를 나타낸다. 명시적으로 라이센싱된 콘텐츠에 있어서, {Licensed ...} 형식은 도 3의 부호화된 부분(303)과 같은, 라이센스를 증명하는데 필요한 추가 정보를 포함하는 부호화된 부분을 항상 가질 것이다. 단계(550)에 있어서, 부호화된 정보가 디코딩된다. 부호화에 따라, 부호화된 정보에 대한 액세스와 관련된 다양한 레벨의 보안이 제공될 수 있다. 예를 들어, 부호화 방법으로는 단순한 이진 부호화로 할 수 있고, 데이터를 암호화 및 부호화하기 위한 공개 키 또는 개인 키 인프라구조를 이용하는 암호 기술이 있다.
단계(551)에 있어서, 콘텐츠의 MAC가 계산되고, 이 계산된 것을 콘텐츠가 변형되었는지 또는 {Licensed ...} 형식이 불법적으로 생성되었는지 여부를 판정하기 위해 {Licensed ...} 형식(300)의 MAC(310)와 비교한다. 만일 계산된 MAC가 허용 가능한 것이 아니라면, 단계(553)에서, 에러 상태가 신호처리되고 루틴은 단계(554)에서 종료된다. 계산된 MAC가 진정한 것이라면, 단계(555)에서 미리 허가된 {Licensed ...} 형식이 검사중인 콘텐츠에 적용되는 것인지를 알기 위해 캐시가 검사된다. 콘텐츠에 사용되는 캐시 엔트리가 발견되면, 단계(556)에서 검사가 실행되고, 단계(557)에서 캐시 엔트리가 갱신된다[이것은 액세스 카운트, 용도 제한 또는 다른 에이징(aging) 메커니즘을 통해 엔트리의 에이징을 위해 허용하기 위한 것이다].
유효 캐시 엔트리가 존재하지 않는다면, 단계(560)에서 라이센스 서버에 접속할 필요가 생긴다. 라이센스 서버의 식별은 부호화된 정보(도 3의 303)에 의해 특정되어 플러그인에서 이루어지거나, 다른 서버에 의해 특정되어 콘텐츠내에서 이루어질 수 있다. 플러그인은 라이센스 서버로의 접촉을 시도하고 라이센스의 증명을 위해 필요하면 플러그인으로부터 라이센스 서버로 필요한 정보를 전달한다. 이 필요한 정보로는, 라이센스 사용자의 동일성, 콘텐츠의 동일성, 사용자의 동일성,머신의 동일성, 계약의 동일성, 용도 카운트 등 중에서 하나 또는 모두가 포함될 수 있다. 이 정보는 통신의 인터셉트로부터 통신을 보호하기 위해 이 기술분야에서 공지된 바와 같이 보안 통신 링크를 통해 라이센스 서버로 전달되는 것이 바람직하다.
본 발명의 한가지 중요한 특징으로서, 도 3의 일부가 부호화된 정보(303)는 라이센스 서버에 저장될 수 있고, {Licensed ...} 형식에 저장된 데이터를 참조할 수 있다. 예를 들어, 라이센스 서버는 라이센스가 콘텐츠에 적용되는 특정 콘텐츠, 추가 증명 사이트, 다른 모듈 또는 콘텐츠에 적용 가능한 유예 기간 등과 관련된 캐시 엔트리를 위한 타임아웃 기간을 특정할 수 있다. 따라서, 일부 정보를 라이센스 서버에 저장함으로써, 콘텐츠에서의 {Licensed ...} 형식에 대한 변경을 필요로 하지 않고 콘텐츠의 모든 액세스에 대해 그 값들을 변경할 수 있다. 또, 사용자 또는 머신 동일성에 대해, 이미 맞추어진 액세스 정책이 각 머신에 따라 또는 각 사용자에 따라 생성될 수 있다. 결국, 부호화된 정보(도 3의 303)가 특정의 정보를 포함한다고 하여도, 그 정보는 라이센스 서버에서 발견된 정보에 의해 무시될 수 있다.
라이센스 서버가 응답하지 않는다면,도 3의 증명 사이트 필드(308)에 하나 이상의 라이센스 서버의 위치가 제공되는 경우 추가 라이센스 서버들이 조회될 수 있다. 단계(561)에서 응답이 있다면, 단계(562)에서 캐시 엔트리가 존재하지 않고 서버로부터의 응답이 없더라도 유예 기간이 적용될 수 있다. 유예 기간은 단절된 동작을 가능하게 하도록 최적화된다. 예를 들어, 콘텐츠는 나중에 액세스하기 위해 사용자 머신에 저장될 수 있다. 사용자가 라이센스 서버를 포함하는 네트워크에 접속되어 있지 않다면, 이전 액세스로부터의 캐시 엔트리 없이, 콘텐츠의 동작이 거부될 것이다. 유예 기간에 의해, 콘텐츠는 라이센스 서버로의 액세스를 요구하지 않고서도 일정 기간의 많은 시간 동안 또는 일정 시간 동안 사용될 수 있다. 단계(563)에서 유예 기간이 만료되면 에러가 신호처리 되고, 단계(564)에서 콘텐츠는 그에 따라 동작하지 않고 단계(656)에서 종료한다. 유예 기간이 적용되고 이 기간이 유효하다면, 콘텐츠는 단계(566)에서 라이센스에 의해 허용된 한도까지 동작하고 단계(567)에서 종료한다.
도 10은 본 발명의 일실시예로서 서버를 접촉하는 단계를 나타내고 있다. 서버가 응답하면, 단계(568)를 수행한다. 라이센스 서버로부터의 응답은 이미 설명된 바와 같이 추가 정보를 포함할 것이다. 이 수신된 정보는 라이센스를 유효화 또는 무효화하는데 사용된다. 단계(570)에서 응답이 라이센스를 무효화한다면, 단계(571)에서 에러가 신호처리 되고 단계(572)에서 종료한다. 응답이 라이센스를 유효화한다면, 단계(573)에서 콘텐츠용 캐시에서 엔트리가 생성되고, 단계(574)에서 콘텐츠가 라이센스하에서 허용된 한도까지 동작하고, 단계(575)에서 종료한다.
도 5 내지 10은 라이센싱 메커니즘의 다양한 실시예를 예시적으로 나타내고 있다. 당업자라면, 변형이 가능하다는 것을 알 수 있을 것이다. 예를 들어, {Licensed ...} 형식에 포함된 정보가 증가한다면, 암호화 및 부호화 알고리즘이 변경될 수 있고, 통신 방법이 바뀔 수 있으며 이것들 모두 본 발명의 범위내에서 가능하다.
확장
사용자 컴퓨터와 인증 서버간의 교환이 매우 간단하게 이루어질 수 있다고 하더라도, 라이센싱 콘텐츠의 각각의 실행에 대해 조금의 부하는 가해진다. 이미 개시된 바와 같이, 이 부하는 주기를 제어하기 위해 사용되는 특정의 타임아웃 구간을 따라 클라이언트에 대한 서버 응답을 캐시처리[예컨대, "쿠키(cookie)" 또는 이와 유사한 클라이언트 상태로 이루어진다]함으로써 감소시킬 수 있다. 캐시처리된 결과는 향후 관련 콘텐츠의 검색에 적용될 수 있다. 라이센싱 파링을 실행하도록 요청된 경우, 플러그인은 {Licensed ...} 형식의 유효성을 승인하는 관련 기록을 위한 국부적 캐시를 검사할 것이다. 따라서, 플러그인은 이러한 캐시 엔트리가 없거나 캐시 엔트리의 기간이 만료된 경우 라이센스 서버와 단지 메시지를 교환하면 된다.
라이센스의 승인에 앞서 캐시처리를 함으로써, 라이센스 서버로 보내져야할 라이센스 증명 요청의 수를 감소시킬 수 있다. 라이센스 증명 요청의 수는 다중의 {Licensed ...} 형식에 적용하는 캐시 엔트리를 허용함으로써 더 감소시킬 수 있다. 예를 들어, 캐시 엔트리는 특정 콘텐츠를 갖는, 특정 라이센스 사용자에 대해 네이밍(naming) 처리하는 또는 특정 도메인으로부터 생성되는 모든 {Licensed ...} 형식이 유효하다는 것을 증명할 수 있다.
타임아웃 메커니즘의 다양한 구현이 가능하다. 예를 들어, 캐시처리된 응답에 대한 실제 타임아웃 구간이 증명 요청에 따라, 제한(플러그인 내부에 구현됨)되거나, {Licensed ...} 형식내에서 특정되거나, 라이센스 권리자의 서버에 의해 특정될 수 있다. 이 타임아웃 구간은 시간 경과, 액세스 횟수 또는 이들의 결합에 의존하게 할 수 있다.
또한, 사용자에 의해 검색될 향후 콘텐츠와 캐시처리된 서버 응답의 상관관계가 구체화될 수 있다. 예를 들어, 콘텐츠가 계층으로 구성된다면, 특정 노드에 대해 캐시처리된 응답이 그 특정노드와 계층에서 하부에 있는 모든 노드 또는 하부 노드들 중 제한된 수의 노드에 적용될 수 있다. 따라서, 웹 페이지용으로 캐시처리된 응답은 동일 도메인내에서 모든 웹 페이지에 적용될 수 있다. 또, {Licensed ...} 형식 또는 서버로부터의 응답은 적용을 위해 콘텐츠를 특정할 수 있다. 따라서, 캐시처리된 응답은 적응성이 있으며 라이센스 사용자의 특정 콘텐츠를 지원하도록 구성될 수 있다.
상기 도 5 내지 10에 개시된 증명 단계에 대한 대안으로서, 백그라운드에서 일어나도록 라이센스 서버와 접촉을 변경하는 것이 있다. 이것은 라이센스의 "게으른 인증(lazy authentication)"을 허용할 수 있는데, 여기서 라이센스는 필요할 때만 증명되고 콘텐츠에 대한 동작과 병행해서 이루어진다. 사용자의 관점에서, 이것은 증명에 앞서 사용자 컴퓨터와 라이센스 컴퓨터간의 상호작용과 콘텐츠의 동작에 의해 생기는 어떠한 지연이라도 제거 또는 감소시키게 된다.
클라이언트의 저장을 보존하고 {Licensed ...} 형식의 크기를 줄이기 위해, {Licensed ...} 형식의 일부가 MD5, SHA1 또는 다른 해시 함수[1996년 브루스 슈네이어(Bruce Schneier), 존 윌리 앤 선스(John Wiley &Sons)가 작성한Applied Cryptography, 제2판]와 같은 암호화 해시 함수를 이용하여 저장된 값들에 대해 비교될 더 작은 형식으로 압축될 수 있다. 이에 대한 대안으로서, 플러그인은 라이센스 서버와 접촉하고, 짧은 암호화 해시를 포함하는 증명 요청을 전송하며, 그 결과를 캐시처리함으로써 모든 {Licensed ...} 형식을 처리하여, 향후에 증명을 할 필요가 없게 된다. 이 방법에 의하면, 암시적인 {Licensed ...} 형식의 세트는 라이센스 서버를 통해 라이센스 권리자의 제어하에서 동적으로 증가할 수 있게 된다. 또한, 캐시 타임아웃을 사용함으로써 라이센스 권리자는 라이센스를 무효로 할 수 있는데, 캐시처리된 증명은 결국 기간 만료될 것이기 때문이다.
{Licensed ...} 형식(300)에 대한 도 3의 부호화된 정보(303)는 C, 파일 콘텐츠의 MAC 및 여러 가지 방법으로 기타 다른 데이터로 구성될 수 있다. 부호화된 정보(303)의 예시적인 계산은 다음과 같다.
Encode(
Encrypt(
Append(
Hash(Append(C,MAC(remainder of file))),
C,
MAC(remainder of file)
),
SecretKey
)
)
여기서, Append는 그 증가를 나타내는 비트열을 단순히 연결한다. Hash는 그 증가의 비가역성 암호화 해시를 계산하고, Encrypt(Bits, Key)는 DES와 같은 표준 암호화 스킴이며, Encode는 부호화와 같은 문자 부호화 함수이다. SecretKey는 라이센스 권리자만 알고 있는 대칭형 암호화 키이다. 해싱처리 및 암호화 단계들은 부호화된 이진 데이터의 C 및 MAC 요소를 분리시키고 이들을 구축된 {Licensed ...} 형식으로 재조합하도록 시도하는 것을 권고하지 않는다.
각각의 명시적인(그리고 일부 암시적인 버전들) 라이센스의 임시적인 재증명이 요구되기 때문에, 라이센스 서버는 라이센스에 대응하는 데이터를 수집하여 데이터베이스에 저장할 수 있다. 이러한 라이센스 레코드는 각 라이센스에 의해 기능을 갖는 액티브 사용자 기반의 상세하지 않은 모델을 제공하기 위해 통계적으로 분석될 수 있다. 라이센스 권리자는, 예컨대 액티브 사용자의 수를 각 관련 라이센스 사용자에게 주말단위로 보고하고 사용자의 수가 현재 라이센스의 조건을 초과하면 라이센스를 재협상하도록 라이센스 사용자에게 요구할 수 있다. 또한, 플러그인은 라이센스 서버로부터 라이센스 레코드를 검색할 수 있어서 정보가 사용자에 의해 처리될 수 있도록 한다.
또, 라이센스 권리자는 캐시 타임아웃 값, 캐시 엔트리의 범위를 특정할 수 있고, 라이센스 권리자가 그 순서에 대한 보고를 생성하거나 콘텐츠 서버의 콘텐츠를 통해 액세스의 흐름을 생성하는 방식으로 콘텐츠를 구성하여, 이용되지 않거나 이용되는 이들 콘텐츠 영역을 식별할 수 있게 된다.
본 명세서에 개시된 본 발명의 실시예에 있어서, 본 발명은 부호화된 이진데이터의 실질적인 처리는 구체화된 암호화 루틴을 포함하도록 그 필요성에 의해 클라이언트 소프트웨어 없는 서버상에서 전체적으로 일어날 수 있다. 그러나 본 발명의 원리에 따라, 이들 또는 다른 함수들이 네트워크 통신을 필요에 따라 표준 보안 수단을 이용하여 원하는 바에 따라 플러그인과 라이센스 권리자의 서버 사이에 재위치할 수 있다.
라이센스 생성
라이센스 사용자가 플러그인과 함께 사용하기 위해 라이센싱된 콘텐츠를 생성하기 위해, 라이센스 사용자는 생성된 콘텐츠에 암호화 {Licensed ...} 형식을 부착할 수 있어야 한다. 이것을 달성하기 위해, 라이센스 권리자는 라이센스 사용자에게 증명 툴(certification tool), 즉 라이센스 되지 않은 파일을 입력으로 하여 이 파일에 적절한 {Licensed ...} 형식을 첨부한 적절한 계약에 특정한(그래서 그 라이센스 사용자에게 특정한) 프로그램을 제공한다. 이 라이센스 툴은 예컨대 동적 로딩 라이브러리 또는 다른 모듈의 형식으로 처음부터 콘텐츠를 생성하는데 사용되는 프로그램과 루틴으로 통합된다. 이에 대한 대안으로, 라이센스 툴은 자립형 프로그램이 될 수 있다.
이 증명 툴은 특정의 라이센스 사용자가 사용하는 것으로만 되며 공개적으로 분배되지 않는다는 것이 확실하다. 이 툴의 보안이 해결되는 경우에, 라이센스 권리자는 라이센스가 생성되는 라이센스를 조회함으로써, 그리고 신선한(해결되지 않은) 라이센스를 구현하는 새로운 툴을 라이센스 사용자에게 부여함으로써 반응할 수 있다. 이 툴은 필요에 따라 어떠한 것이든 초기의 {Licensed ...} 형식을 삭제하고 현재의 라이센싱 조건과 공급된 소스 파일의 나머지 콘텐츠에 기초하여 새로운 카피를 생성한다. 이에 대한 대안으로서, {Licensed ...} 형식은 타임 스탬프를 포함할 수 있어서, 라이센스 서버가 툴이 해결되기에 앞서 타임 스탬프를 갖는 라이센스 형식을 증명할 수 있다.
이 툴은 완전히 자급식(self-contained)으로 할 수 있으며, 내부 부호화 및 암호화 메커니즘에 의존하도록 하고, 특정 라이센스 권리자에 의해 유지되는 서버와 관련하여 동작하도록 할 수 있다. 최종에는, 마지막 방법으로, {Licensed ...} 형식은 라이센스 생성 서버에 대한 보안 링크를 통해 콘텐츠 파일(또는 파일의 MAC)를 전송함으로써 생성될 수 있다. 이 라이센스 생성 서버는 필요한 정보를 생성하고, 이 생성된 정보를 응답으로 다시 보낼 것이다. 이러한 방법의 이점은 라이센스 권리자의 암호 정보를 포함하는 툴이 라이센스 권리자의 제어하에 놓이게 된다는 점이다.
다중 단계의 라이센스 소프트웨어
{Licensed ...} 형식은 다중의 라이센스 권리자와 라이센스 사용자 사이의 관계를 지원하기 위해 확장될 수 있다. 예를 들어, 시스템이 도 11에 도시된 것과 같이 라이센스 권리자와 라이센스 사용자 사이의 관계를 지원할 수 있다. 이 실시예에 있어서, 플러그인은 애플리케이션의 개발 및 분배를 위해 콘텐츠 제공자에 대해 라이센싱될 수 있다. 이 경우, 라이센스 권리자는 플러그인 개발자이고, 라이센스 사용자는 콘텐츠 개발자/제공자이다. 이와 달리, 콘텐츠 제공자는 사용자에 대해 콘텐츠를 라이센싱할 수 있다. 이 경우, 라이센스 권리자는 콘텐츠 개발자/제공자이고, 라이센스 사용자는 이용자이다.
이전에 개시된 실시예들과 마찬가지로 동작할 수 있지만, 2개의 라이센스 권리자와 라이센스 사용자 사이의 관계를 취급하도록 확장된다. 클라이언트(100)는 콘텐츠(201)용의 요청(601)을 콘텐츠 서버(200)로 전송한다. 콘텐츠 서버(200)는 콘텐츠(201)를 포함하는 응답(602)을 전송함으로써 응답한다. 플러그인(103)은 {Licensed ...} 형식을 위해 콘텐츠(201)를 스캔하고, 이 경우 다음과 같은 2개의 라이센스 형식을 보게 된다.
{Licensed by Alpha Company under contract A23}
{Licensed by Bravo Company under contract B99}
이에 대한 대안으로서, 다중의 라이센스 형식이 조합되거나 포함될 수 있다.
하나의 {Licensed ...} 형식은 플러그인 제공자와 콘텐츠 제공자 사이의 라이센스와 관련되어 있다. 플러그인(103)은 그 관련된 {Licensed ...} 형식을 증명하기 위해 플러그인 라이센스 서버(403(a))와 접촉한다(603). 라이센스 서버(403(a))는 라이센스 데이터베이스(406(a))로부터 적절한 정보를 검색하고 응답(604)을 플러그인(103)으로 전송한다.
다른 {Licensed ...} 형식은 콘텐츠 제공자와 최종 사용자 사이의 관계에 관련되어 있다. 다시, 플러그인(103)은 관련된 {Licensed ...} 형식을 증명하기 위해 콘텐츠 라이센스 서버(403(b))에게 메시지(605)를 보낸다. 라이센스 서버(403(b))는 라이센스 데이터베이스(406(b))로부터 적절한 정보를 검색하고 응답(606)을 플러그인(103)으로 보낸다.
검색된 응답에 따라, 플러그인(103)은 콘텐츠에 대해 동작하게 된다. 2개의 {Licensed ...} 형식은 각각 상이한 증명 서버와 상이한 유예 기간 또는 캐시 타임아웃 기간과 같은 상이한 설정을 가져서 라이센스 상호작용이 요구에 맞게 이루어질 수 있다.
이러한 일반적인 스킴은 본 발명의 추가 실시예에서 더 확장되어 라이센싱된 모듈이 서로 참조할 수 있게 된다. 예를 들어, 개별적으로 소스처리된 콘텐츠와 소프트웨어 모듈은 서로를 참조할 수 있다. CURL 에 있어서, {require <file locator> ...} 형식은 {require ...} 형식을 포함하는 모듈의 실행이 특정된 파일 위치 지정자, 통상적으로 "URL"에 의해 식별된 다른 모듈에 대한 액세스에 의존하게 된다. 플러그인이 이러한 종속성을 갖는다면, 특정된 또는 "요구된" 모듈을 페치하여 가져오게 된다. 요구되어지고 요구하는 모듈 모두는 {Licensed ...} 형식을 포함하며, 이 형식은 동일한 또는 상이한 라이센스, 라이센스 권리자 및 라이센스 사용자를 특정할 수 있다. 대부분의 일반적인 그리고 가장 흥미를 끄는 경우는 모듈은 상이한 개발자들로부터 만들어진 경우이다.
예를 들어, 회사 B는 다른 Curl 개발자가 흥미를 갖는 고성능 Curl 오디오 소프트웨어인 B.curl을 제공하며, 회사 A는 B.curl을 요구하는 Curl 애플리케이션 A.curl을 생성할 수 있다. 그러나, B의 라이센스 사용자가 되도록 A에 대해 추가 지원책을 제공하는 것이 유용하다. 이것을 달성하기 위해, 소프트웨어 라이센스 를 모니터링하도록 제3자의 소프트웨어 공급자가 본 발명의 특징을 이용할 수 있게 하는 메커니즘을 제공한다.
파일에 있는
{Licensor <name of licensor>
<encoded binary data>)}
형식은 포함되어 있는 콘텐츠 모듈이 라이센싱되도록 설정하는데 사용되며, 플러그인 그 자체를 포함하는 것들에 추가로 제한이 있게 된다. 라이센스 권리자의 이름 부분은 평문이 되며, 인간 신뢰적인 형식으로 라이센스 권리자(그리고 선택적으로 다른 관련 세부사항)를 식별한다. 부호화된 이진 데이터는 지시된 라이센스를 모니터링하는 하나 이상의 서버의 암호화 형식, URL 또는 다른 식별자를 포함한다. 상기 실시예에 있어서,
{Licensor B Corporation
<encoded binary data>}
형식은 용도가 B 회사에 의해 부과된 라이센싱 제한사항이라는 것을 나타내도록 파일 B.curl 에 보이게 될 것이다.
선택적인 {Licensed ...} 형식을 포함하며 외부 콘텐츠에 대해 종속성을 나타내는 {require ...} 형식은 {require ...} 형식 내의 조항으로서 적절하게 함유된다. {require ...} 조항은 {require ...} 형식내에 구현되고 요구된 모듈에서 선언된 라이센스 권리자로부터 라이센스와 관련되어 있다는 것을 나타낸다는 것을 제외하고는 이미 개시된 {Licensed ...}와 유사한 구조와 기능을 갖는다.
이 실시예에서 있어서, 파일 A.curl 은
{require "http://www.B.com/B.curl"
{Licensed by A
<encoded binary data>
...}
형식을 포함할 것이다. 여기서, http://www.B.com/B.curl은 A.curl에 의해 요구되는 모듈에 대한 URL 또는 다른 참조이고, {Licensed...} 조항은 부호화된 이진 데이터내에 A의 라이센스 상태를 증명하기 위해 B의 라이센스 서버를 위한 필요에 따라 이미 개시된 성분을 포함한다. A.curl내에서 상기 형식들중 하나를 보게 되면, 플러그인은 먼저 그 {require...} 형식 모두를 적절하게 만족시키고 필요에 따라 라이센스를 증명하는 B.curl을 로딩할 것이다. 이 플러그인은 B.curl내에서 발견된 {Licensed...} 형식에서 식별된 서버와 함께 {require ...} 형식에서의 {Licensed by A ...}로부터 데이터를 이용하여 이미 개시된 바와 같이 B.curl의 A의 용도를 증명할 것이다. B는 이미 개시된바와 같이 각각의 {Licensed...} 조항을 동적으로 증명하기 위해 B의 서버를 이용하여 암시적인 라이센스를 제공할 수 있다.
A의 B와의 라이센싱 계약에 대해서, A는 A에 의해 생성된 모듈에 대한 {Licensed...} 형식에 {Licensed...} 조항을 부가할 수 있도록 해주는 증명 툴을 B로부터 수신한다. 이 툴은 이미 설명한 증명 툴과 통상 동일한 방식으로 동작하는데, 최상위 레벨의 {Licensed...} 형식이 아닌 조항을 생성한다는 점이 다르다.
이러한 방식을 이용하여, B는 모든 A의 클라이언트에 대한 B.curl의 모든 용도를 단순히 라이센싱하는 것이 아니라 A에 대한 B.curl의 용도를 라이센싱할 수있다. 도 12에 도시된 바와 같이, B는 라이센싱되지 않은 D.curl이 B.curl을 이용하는 것을 방지하고, A.curl은 소정의 클라이언트에 대해 B.curl을 이용하는 이점을 갖는다. B.curl은 플러그인 능력에 대해 종속적이어서 허가된 상호작용 및 상호종속성을 얻는 것에 대해서는 기능성을 갖는 모듈을 분리할 수 있다. 많은 현대의 운영 체제가 이것을 위해 지원되고 있으며, Java[캘리포니아 팔로 알토에 소재한 선마이크로시스템즈(Sun Microsystems, Inc)]와 Safe-TCL[The Safe-Tcl Security Model, 선마이크로시스템즈 연구소의 야콥(Jacob Y.Levy)과 로렌트(Laurent Demailly); 미국 루지애나주 뉴올랜즈에서, 1998년 6월 15일-19일 열린, USENIX Annual Technical Conference(NO 98)에서, 스크립틱스(Scriptics Inc.)의 존(John K. Ousterhout)과 브렌드(Brent B. Welch)]과 같은 모바일 코드에 대해 통상적인 시스템이 이러한 것을 한다. 또한, B.curl은 개별적으로 유지되는 라이센스하에서 다른 추가의 판매자로부터 라이센싱된 소프트웨어를 요구할 수 있다. 실제로, 플러그인의 공급업자는 라이센싱을 확장할 수 있어서 임의의 소프트웨어 판매자에게 이득이 된다.
다른 실시예
상기 개시된 실시예들의 많은 변형이 가능하다는 것을 본 기술분야의 당업자라면 명백히 알 수 있을 것이다. 예를 들어, 일부 또는 모든 콘텐츠가 실제 또는 가상 머신을 위한 명령어나 추가의 인터프리트나 번역을 요구하는 중간형태의 표현으로서 이진수로 코드화될 수 있다.
클라이언트 플러그인에 의해 제공된 추가 특정과 관련된 {Licensed...} 형식에 많은 추가 데이터 필드가 포함될 수 있다. 예를 들어, 라이센스 권리자는 사용자로부터 증명과 패스워드 정보를 요구하기 위해 플러그인을 필요로 하는 것 등의 추가의 사용자 인증 특성을 제공할 수 있으며, 선택적으로 라이센스 사용자의 서버로 증명이 가능하다.
본 발명의 다른 실시예에 있어서, 플러그인은 콘텐츠를 처리하기 위해 필요하면 추가의 모듈이나 플러그인을 로딩하고 {Licensed...} 형식을 인터프리트하기 위해 필요한 명령어들만을 처음부터 포함할 수 있다. 이 경우, 플러그인 또는 {Licensed...} 형식은 추가의 모듈이나 플러그인을 제공할 수 있는 적어도 하나의 서버를 식별할 것이다. 이들 추가의 모듈은 다운로딩되어 필요할 때 사용하기 위해 클라이언트에 저장된다. 클라이언트는 마지막으로 액세스한 시간에 따른 사용되지 않은 모듈이나 이러한 교체 메트릭을 동적으로 해제할 수 있다. 이것은 콘텐츠를 처리할 필요가 있을 때 그리고 모든 {Licensed...} 형식이 포함되어 있을 때 매우 작은 플러그인에 대해 모든 다른 모듈이 서버로부터 차례로 다운로딩되는 것으로 제공된다. 해제된 모듈에 의해 채워진 공간은 재사용을 위해 다시 요구되어질 수 있기 때문에, 클라이언트가 최소한의 모듈 저장 영역을 생성할 수 있도록 해준다.
본 발명의 메커니즘은 본 발명의 목적, 예를 들어 개인용이라든가 보안용이라든가 하는 것과 관련되지 않은 유용한 기능을 수행할 수 있는 인증 및 증명 요소를 포함한다. 이러한 추가 목적을 갖는 본 발명의 애플리케이션에 있어서, {Licensed...} 형식에서의 정보의 코드화는 이들 추가 목적을 달성하는 다른 정보와 메커니즘과 결합하는 이점이 있다. 라이센싱 및 보안 메커니즘의 조합은 조합된 구현으로부터 여분의 정보와 메커니즘을 제거함으로써 당업자에게 명백한 방식으로 최적화될 수 있다.
클라이언트 실행 장치는 본 명세서에 개시된 바와 같이 브라우저 플러그인이 될 필요는 없으며, 애플리케이션, 애플릿, 동적으로 연계된 라이브러이(DLL), ActiveX 제어 또는 기타 다른 형태의 실행 코드도 가능하다.

Claims (50)

  1. 디지털 콘텐츠를 라이센싱하는 방법에 있어서,
    라이센싱된 콘텐츠라는 것을 나타내며 라이센스 특정 부분이 있는 데이터를 식별하도록 상기 디지털 콘텐츠를 검사하는 단계와;
    라이센스의 상태를 판정하는 단계와;
    상기 라이센스의 상태에 따라 상기 디지털 콘텐츠를 처리하는 단계를 포함하는 것을 특징으로 하는 디지털 콘텐츠의 라이센싱 방법.
  2. 제1항에 있어서, 상기 디지털 콘텐츠를 검사하는 단계는 상기 디지털 콘텐츠에서 라이센스 스테이트먼트를 탐색하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  3. 제1항에 있어서, 상기 데이터는 사용자가 판독 가능한 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  4. 제1항에 있어서, 상기 데이터는 암호화된 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  5. 제1항에 있어서, 상기 라이센스의 상태를 판정하는 단계는 상기 데이터에 기초하여 라이센스의 상태를 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  6. 제1항에 있어서, 상기 라이센스의 상태를 판정하는 단계는 서버로부터 라이센스의 상태를 요청하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  7. 제6항에 있어서, 상기 서버로부터 라이센스의 상태를 요청하는 단계는 데이터의 일부를 상기 서버에 제공하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  8. 제7항에 있어서, 상기 데이터는 암호화된 부분을 포함하며, 상기 데이터의 일부를 서버에 제공하는 단계는 상기 암호화된 부분을 제공하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  9. 제6항에 있어서, 상기 서버로부터의 응답을 캐시처리하는 단계를 추가로 포함하며, 상기 라이센스의 상태를 판정하는 단계는 서버로부터의 응답에 대해 캐시를 조사하는 단계와 상기 캐시의 조사에 따라 서버로부터 라이센스의 상태를 요청하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  10. 제9항에 있어서, 상기 캐시를 조사하는 단계는 상기 데이터에 대응하는 캐시엔트리를 탐색하는 단계와, 상기 캐시 엔트리의 유효성을 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  11. 제10항에 있어서, 상기 캐시 엔트리의 유효성을 판정하는 단계는 상기 캐시 엔트리가 기한 만료되지 않았는지 여부를 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  12. 제6항에 있어서, 상기 상태에 따라 디지털 콘텐츠를 처리하는 단계는 상기 상태를 판정하면서 디지털 콘텐츠의 적어도 일부를 처리하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  13. 제1항에 있어서, 상기 상태에 따라 디지털 콘텐츠를 처리하는 단계는 상기 상태를 판정하면서 디지털 콘텐츠의 적어도 일부를 처리하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  14. 제1항에 있어서, 상기 데이터는 상기 디지털 콘텐츠가 변경되었는지 여부를 판정하기 위한 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  15. 제1항에 있어서, 상기 디지털 콘텐츠를 처리하는 단계는 판정된 상태에 따라 제1 루틴과 제2 처리 루틴을 상기 데이터에 선택적으로 적용하는 단계를 포함하는것인 디지털 콘텐츠의 라이센싱 방법.
  16. 제15항에 있어서, 상기 제1 루틴과 제2 루틴을 선택적으로 적용하는 단계는 상기 제1 루틴을 데이터에 적용하는 단계와 상기 제2 처리 루틴을 데이터에 적용하지 않는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  17. 제1항에 있어서, 상기 라이센스의 상태를 판정하는 단계는 상기 라이센스가 비영리 목적을 위한 것인지 여부를 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  18. 제17항에 있어서, 상기 콘텐츠가 비영리 목적으로 라이센싱되었다는 것을 사용자에게 알려주는 단계를 추가로 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  19. 디지털 콘텐츠를 라이센싱하는 방법에 있어서,
    라이센스를 나타내며 라이센스 특정 부분이 있는 디지털 콘텐츠 데이터를 구현하는 제1 소프트웨어를 제공하는 단계와;
    상기 디지털 콘텐츠에 있는 상기 데이터를 식별하고, 상기 디지털 콘텐츠에 의해 지시된 라이센스의 상태를 판정하며, 상기 상태에 따라 디지털 콘텐츠를 처리하는 제2 소프트웨어를 제공하는 단계를 포함하는 것을 특징으로 하는 디지털 콘텐츠의 라이센싱 방법.
  20. 제19항에 있어서, 상기 라이센스를 나타내는 데이터를 식별하는 단계는 상기 디지털 콘텐츠에서 라이센스 스테이트먼트를 탐색하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  21. 제19항에 있어서, 상기 데이터는 사용자가 판독 가능한 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  22. 제19항에 있어서, 상기 데이터는 암호화된 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  23. 제19항에 있어서, 상기 라이센스의 상태를 판정하는 단계는 상기 데이터에 기초하여 라이센스의 상태를 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  24. 제19항에 있어서, 상기 라이센스의 상태를 판정하는 단계는 서버로부터 라이센스의 상태를 요청하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  25. 제24항에 있어서, 상기 서버로부터 라이센스의 상태를 요청하는 단계는 데이터의 일부를 상기 서버에 제공하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  26. 제25항에 있어서, 상기 데이터는 암호화된 부분을 포함하며, 상기 데이터의 일부를 서버에 제공하는 단계는 상기 암호화된 부분을 제공하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  27. 제24항에 있어서, 상기 서버로부터의 응답을 캐시처리하는 단계를 추가로 포함하며, 상기 라이센스의 상태를 판정하는 단계는 서버로부터의 응답에 대해 캐시를 조사하는 단계와 상기 캐시의 조사에 따라 서버로부터 라이센스의 상태를 요청하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  28. 제27항에 있어서, 상기 캐시를 조사하는 단계는 상기 데이터에 대응하는 캐시 엔트리를 탐색하는 단계와, 상기 캐시 엔트리의 유효성을 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  29. 제28항에 있어서, 상기 캐시 엔트리의 유효성을 판정하는 단계는 상기 캐시 엔트리가 기한 만료되지 않았는지 여부를 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  30. 제24항에 있어서, 상기 상태에 따라 디지털 콘텐츠를 처리하는 단계는 상기상태를 판정하면서 디지털 콘텐츠의 적어도 일부를 처리하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  31. 제19항에 있어서, 상기 상태에 따라 디지털 콘텐츠를 처리하는 단계는 상기 상태를 판정하면서 디지털 콘텐츠의 적어도 일부를 처리하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  32. 제19항에 있어서, 상기 데이터는 상기 디지털 콘텐츠가 변경되었는지 여부를 판정하기 위한 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  33. 제19항에 있어서, 상기 디지털 콘텐츠를 처리하는 단계는 판정된 상태에 따라 제1 루틴과 제2 처리 루틴을 상기 데이터에 선택적으로 적용하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  34. 제33항에 있어서, 상기 제1 루틴과 제2 루틴을 선택적으로 적용하는 단계는 판정된 상태에 따라 상기 제1 루틴을 데이터에 적용하는 단계와, 판정된 상태에 따라 상기 제2 처리 루틴을 데이터에 적용하지 않는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  35. 제19항에 있어서, 상기 라이센스의 상태를 판정하는 단계는 상기 라이센스가비영리 목적을 위한 것인지 여부를 판정하는 단계를 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  36. 제35항에 있어서, 상기 콘텐츠가 비영리 목적으로 라이센싱되었다는 것을 사용자에게 알려주는 단계를 추가로 포함하는 것인 디지털 콘텐츠의 라이센싱 방법.
  37. 디지털 콘텐츠를 라이셍싱하는 장치에 있어서,
    범용 컴퓨터와;
    라이센싱된 콘텐츠라는 것을 나타내며 라이센스 특정 부분이 있는 데이터를 식별하도록 디지털 콘텐츠를 검사하고, 라이센스의 상태를 판정하며, 상기 라이센스의 상태에 따라 디지털 콘텐츠를 처리하기 위한 프로그램된 명령어를 갖는 메모리를 구비하는 것을 특징으로 하는 디지털 콘텐츠의 라이센싱 장치.
  38. 제37항에 있어서, 상기 디지털 콘텐츠의 검사는 상기 디지털 콘텐츠에서 라이센스 스테이트먼트를 탐색하는 것인 디지털 콘텐츠의 라이센싱 장치.
  39. 제37항에 있어서, 상기 데이터는 사용자가 판독 가능한 부분과 암호화된 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 장치.
  40. 제37항에 있어서, 상기 라이센스 상태의 판정은 상기 데이터에 기초하여 라이센스의 상태를 판정하는 것인 디지털 콘텐츠의 라이센싱 장치.
  41. 제1항에 있어서, 상기 라이센스의 상태의 판정은 서버에 상기 데이터의 일부를 제공하고, 상기 데이터에 기초하여 상기 서버로부터 라이센스의 상태를 요청하는 것인 디지털 콘텐츠의 라이센싱 장치.
  42. 제41항에 있어서, 상기 데이터는 암호화된 부분을 포함하며, 상기 데이터의 일부를 서버에 제공하는 것는 상기 암호화된 부분을 제공하는 것인 디지털 콘텐츠의 라이센싱 장치.
  43. 제41항에 있어서, 상기 서버로부터의 응답에 대한 캐시처리를 추가로 포함하며, 상기 라이센스의 상태 판정은 서버로부터의 응답에 대해 캐시를 조사하고 상기 캐시의 조사에 따라 서버로부터 라이센스의 상태를 요청하는 것인 디지털 콘텐츠의 라이센싱 장치.
  44. 제43항에 있어서, 상기 캐시의 조사는 상기 데이터에 대응하는 캐시 엔트리를 탐색하고, 상기 캐시 엔트리의 유효성을 판정하는 것인 디지털 콘텐츠의 라이센싱 장치.
  45. 제41항에 있어서, 상기 캐시 엔트리에 대한 유효성의 판정은 상기 캐시 엔트리가 기한 만료되지 않았는지 여부를 판정하는 것인 디지털 콘텐츠의 라이센싱 장치.
  46. 제37항에 있어서, 상기 상태에 따른 디지털 콘텐츠의 처리는 상기 상태를 판정하면서 디지털 콘텐츠의 적어도 일부를 처리하는 것인 디지털 콘텐츠의 라이센싱 장치.
  47. 제40항에 있어서, 상기 데이터는 상기 디지털 콘텐츠가 변경되었는지 여부를 판정하기 위한 부분을 포함하는 것인 디지털 콘텐츠의 라이센싱 장치.
  48. 제37항에 있어서, 상기 디지털 콘텐츠의 처리는 판정된 상태에 따라 제1 루틴과 제2 처리 루틴을 상기 데이터에 선택적으로 적용하는 것인 디지털 콘텐츠의 라이센싱 장치.
  49. 제48항에 있어서, 상기 제1 루틴과 제2 루틴에 대한 선택적 적용은 상기 제1 루틴을 데이터에 적용하고, 상기 제2 처리 루틴을 데이터에 적용하지 않는 것인 디지털 콘텐츠의 라이센싱 장치.
  50. 제37항에 있어서, 상기 라이센스의 상태에 대한 판정은 상기 라이센스가 비영리 목적을 위한 것인지 여부를 판정하고, 상기 콘텐츠가 비영리 목적으로 라이센싱되었다는 것을 사용자에게 알려주는 것인 디지털 콘텐츠의 라이센싱 장치.
KR1020017011576A 1999-03-12 2000-03-10 라이센싱 콘텐츠용 시스템 및 방법 KR20020003375A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/267,269 1999-03-12
US09/267,269 US6766305B1 (en) 1999-03-12 1999-03-12 Licensing system and method for freely distributed information
PCT/US2000/006242 WO2000054128A1 (en) 1999-03-12 2000-03-10 System and method for licensing content

Publications (1)

Publication Number Publication Date
KR20020003375A true KR20020003375A (ko) 2002-01-12

Family

ID=23018058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017011576A KR20020003375A (ko) 1999-03-12 2000-03-10 라이센싱 콘텐츠용 시스템 및 방법

Country Status (10)

Country Link
US (1) US6766305B1 (ko)
EP (1) EP1163565A1 (ko)
JP (1) JP2002539515A (ko)
KR (1) KR20020003375A (ko)
CN (1) CN1346455A (ko)
AU (1) AU3522800A (ko)
BR (1) BR0008948A (ko)
CA (1) CA2366834A1 (ko)
MX (1) MXPA01009194A (ko)
WO (1) WO2000054128A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100479668B1 (ko) * 2002-11-07 2005-03-31 에스케이 텔레콤주식회사 모바일게임에 있어서 디지털권리 관리시스템 및 방법
KR100662336B1 (ko) * 2004-06-21 2007-01-02 엘지전자 주식회사 컨텐츠 다운로드 방법 및 그를 수행하기 위한 시스템
WO2007001118A1 (en) * 2005-06-29 2007-01-04 Lg Electronics Inc. Rights object, rights object issuing method, and contents controlling method using the same in digital rights management
KR100877956B1 (ko) * 2008-02-22 2009-01-13 주식회사 디지캡 다운로드 콘텐츠보호 시스템 및 그 접속방법
KR100877955B1 (ko) * 2008-02-22 2009-01-13 주식회사 디지캡 다운로드 콘텐츠보호 솔루션이미지 생성방법
US7788728B2 (en) 2004-01-08 2010-08-31 Samsung Electronics Co., Ltd. Method and apparatus for limiting number of times contents can be accessed using hash chain
KR101053383B1 (ko) * 2003-02-21 2011-08-01 소니 일렉트로닉스 인코포레이티드 매체 콘텐츠 식별

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021477A1 (en) * 1997-01-29 2005-01-27 Ganapathy Krishnan Method and system for securely incorporating electronic information into an online purchasing application
JP3977549B2 (ja) * 1999-04-30 2007-09-19 株式会社東芝 コンテンツ管理方法、コンテンツ利用管理システム、コンテンツ利用管理装置及び再生装置
US20020029215A1 (en) * 1999-07-09 2002-03-07 Whitmyer Wesley W. Web site automating transfer of intellectual property
US7031474B1 (en) 1999-10-04 2006-04-18 Srs Labs, Inc. Acoustic correction apparatus
US6868405B1 (en) * 1999-11-29 2005-03-15 Microsoft Corporation Copy detection for digitally-formatted works
US7277767B2 (en) * 1999-12-10 2007-10-02 Srs Labs, Inc. System and method for enhanced streaming audio
US20020073033A1 (en) * 2000-04-07 2002-06-13 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US20020032905A1 (en) * 2000-04-07 2002-03-14 Sherr Scott Jeffrey Online digital video signal transfer apparatus and method
US6732175B1 (en) 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US7146422B1 (en) * 2000-05-01 2006-12-05 Intel Corporation Method and apparatus for validating documents based on a validation template
US7272628B1 (en) 2000-07-25 2007-09-18 Adobe Systems Incorporated Communicating data using an HTTP client
AU2001294555A1 (en) * 2000-09-14 2002-03-26 Bea Systems Inc. Xml-based graphical user interface application development toolkit
KR20020022283A (ko) * 2000-09-19 2002-03-27 김장우 암호화된 디지털 컨텐츠 온라인 판매 시스템
US20030046395A1 (en) * 2000-12-12 2003-03-06 Robert Fleming System and method for bounding the life of an event subscription to the availability of an object
JP3578089B2 (ja) * 2001-01-29 2004-10-20 日本電信電話株式会社 サービス取得方法及びクライアント端末及びサービス取得プログラム及びサービス取得プログラムを格納した記憶媒体
JP3578091B2 (ja) * 2001-02-13 2004-10-20 日本電信電話株式会社 コンテンツ取得方法及びコンテンツ提供方法及びコンテンツ取得装置及びコンテンツ提供装置及びコンテンツ取得プログラム及びコンテンツ提供プログラム
JP4185363B2 (ja) * 2001-02-22 2008-11-26 ビーイーエイ システムズ, インコーポレイテッド トランザクション処理システムにおけるメッセージ暗号化及び署名のためのシステム及び方法
EP1243998B1 (en) * 2001-03-21 2017-04-19 Excalibur IP, LLC A technique for license management and online software license enforcement
US7424747B2 (en) * 2001-04-24 2008-09-09 Microsoft Corporation Method and system for detecting pirated content
US20030065670A1 (en) * 2001-04-25 2003-04-03 Michel Bisson Personalization server unified user profile
US7359882B2 (en) * 2001-05-11 2008-04-15 Bea Systems, Inc. Distributed run-time licensing
US7185105B2 (en) * 2001-05-11 2007-02-27 Bea Systems, Inc. Application messaging system with flexible message header structure
JP2003122726A (ja) * 2001-06-07 2003-04-25 Hitachi Ltd コンテンツ制御方法及びその実施装置並びにその処理プログラム
US7647409B2 (en) * 2001-06-28 2010-01-12 International Business Machines Corporation Gradual online subscription removal
CN1476561A (zh) * 2001-09-28 2004-02-18 索尼株式会社 访问限制装置、访问限制方法、记录有访问限制程序的计算机可读程序存储媒体以及访问限制程序
US20030084171A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation User access control to distributed resources on a data communications network
EP1485833A4 (en) * 2001-11-20 2005-10-12 Contentguard Holdings Inc EXTENSIBLE RIGHTS EXPRESSION PROCESSING SYSTEM
US7730297B1 (en) 2002-02-06 2010-06-01 Adobe Systems Incorporated Automated public key certificate transfer
US20050144175A1 (en) * 2002-02-18 2005-06-30 Siemens Aktiengesellschaft Method and system for administrating use of a service
US7213269B2 (en) 2002-02-21 2007-05-01 Adobe Systems Incorporated Application rights enabling
US20040083370A1 (en) * 2002-09-13 2004-04-29 Sun Microsystems, Inc., A Delaware Corporation Rights maintenance in a rights locker system for digital content access control
US7363651B2 (en) * 2002-09-13 2008-04-22 Sun Microsystems, Inc. System for digital content access control
US7512972B2 (en) 2002-09-13 2009-03-31 Sun Microsystems, Inc. Synchronizing for digital content access control
US7398557B2 (en) * 2002-09-13 2008-07-08 Sun Microsystems, Inc. Accessing in a rights locker system for digital content access control
US7240365B2 (en) * 2002-09-13 2007-07-03 Sun Microsystems, Inc. Repositing for digital content access control
US20040059913A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc., A Delaware Corporation Accessing for controlled delivery of digital content in a system for digital content access control
US20040059939A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc., A Delaware Corporation Controlled delivery of digital content in a system for digital content access control
US7913312B2 (en) * 2002-09-13 2011-03-22 Oracle America, Inc. Embedded content requests in a rights locker system for digital content access control
US7380280B2 (en) * 2002-09-13 2008-05-27 Sun Microsystems, Inc. Rights locker for digital content access control
US8028023B2 (en) * 2002-09-17 2011-09-27 At&T Intellecutal Property I, L.P. Extending functionality of instant messaging (IM) systems
US7334043B2 (en) * 2002-09-17 2008-02-19 At&T Delaware Intellectual Property, Inc. Extending functionality of workflow applications using instant messaging (IM)
US7757075B2 (en) * 2002-11-15 2010-07-13 Microsoft Corporation State reference
US7278168B1 (en) 2002-11-27 2007-10-02 Adobe Systems Incorporated Dynamic enabling of functionality in electronic document readers
US8660960B2 (en) 2002-11-27 2014-02-25 Adobe Systems Incorporated Document digest allowing selective changes to a document
KR101014912B1 (ko) * 2002-12-17 2011-02-15 소니 픽쳐스 엔터테인먼트, 인크. 중첩 멀티서버 네트워크 환경에서 액세스 제어 방법 및 장치
JP4175118B2 (ja) * 2003-01-14 2008-11-05 ヤマハ株式会社 コンテンツ処理装置及びプログラム
US20040235563A1 (en) * 2003-02-26 2004-11-25 Blackburn Christopher W. Game update service in a service-oriented gaming network environment
US8308567B2 (en) * 2003-03-05 2012-11-13 Wms Gaming Inc. Discovery service in a service-oriented gaming network environment
US20040242328A1 (en) * 2003-03-05 2004-12-02 Blackburn Christopher W. Boot service in a service-oriented gaming network environment
US20040243848A1 (en) * 2003-03-06 2004-12-02 Blackburn Christopher W. Authentication service in a service-oriented gaming network environment
US20040243849A1 (en) * 2003-03-06 2004-12-02 Blackburn Christopher W. Authorization service in a service-oriented gaming network environment
US20040242331A1 (en) * 2003-03-17 2004-12-02 Blackburn Christopher W. Time service in a service-oriented gaming network environment
KR20050123105A (ko) * 2003-03-24 2005-12-29 마츠시타 덴끼 산교 가부시키가이샤 데이터 보호 관리 장치 및 데이터 보호 관리 방법
US20040266532A1 (en) * 2003-03-27 2004-12-30 Blackburn Christopher W. Event management service in a service-oriented gaming network environment
JP4248913B2 (ja) 2003-03-31 2009-04-02 株式会社エヌ・ティ・ティ・ドコモ 端末装置、プログラムおよび通信システム
CA2464514A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Secured networks in a gaming system environment
CA2464430A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Layered security methods and apparatus in a gaming system environment
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
CA2464797A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Remote authentication of gaming software in a gaming system environment
US7735144B2 (en) 2003-05-16 2010-06-08 Adobe Systems Incorporated Document modification detection and prevention
US20050227768A1 (en) * 2003-05-27 2005-10-13 Blackburn Christopher W Gaming network environment having a language translation service
US7389273B2 (en) 2003-09-25 2008-06-17 Scott Andrew Irwin System and method for federated rights management
EP1521395A1 (de) * 2003-09-30 2005-04-06 Siemens Aktiengesellschaft Verfahren zur Lizensierung und/oder Zugangsautorisierung für Softwaremodule in einer Vermittlungseinrichtung
CA2544017A1 (en) * 2003-10-29 2005-05-12 Michael W. Trainum System and method for managing documents
US7310807B2 (en) 2003-10-29 2007-12-18 Sbc Knowledge Ventures, L.P. System and method for local video distribution
EP1550933A1 (en) * 2003-10-31 2005-07-06 Sap Ag Securely providing user-specific application versions
US20050097343A1 (en) * 2003-10-31 2005-05-05 Michael Altenhofen Secure user-specific application versions
US7818259B2 (en) * 2004-01-23 2010-10-19 Siemens Aktiengesellschaft Prepaid licensing system and method
US7676846B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Binding content to an entity
TWI276888B (en) * 2004-04-22 2007-03-21 Novatek Microelectronics Corp Data transferring method
US8904458B2 (en) 2004-07-29 2014-12-02 At&T Intellectual Property I, L.P. System and method for pre-caching a first portion of a video file on a set-top box
US8584257B2 (en) 2004-08-10 2013-11-12 At&T Intellectual Property I, L.P. Method and interface for video content acquisition security on a set-top box
KR100608605B1 (ko) 2004-09-15 2006-08-03 삼성전자주식회사 디지털 저작권 관리 방법 및 장치
US8086261B2 (en) 2004-10-07 2011-12-27 At&T Intellectual Property I, L.P. System and method for providing digital network access and digital broadcast services using combined channels on a single physical medium to the customer premises
US7716714B2 (en) 2004-12-01 2010-05-11 At&T Intellectual Property I, L.P. System and method for recording television content at a set top box
US8434116B2 (en) 2004-12-01 2013-04-30 At&T Intellectual Property I, L.P. Device, system, and method for managing television tuners
US7474359B2 (en) 2004-12-06 2009-01-06 At&T Intellectual Properties I, L.P. System and method of displaying a video stream
US20060195404A1 (en) * 2004-12-29 2006-08-31 Laszlo Elteto System and method for providing grace licensing to disconnected network license users
US20060161972A1 (en) * 2005-01-19 2006-07-20 Cromer Daryl C System and method for license management in blade server system
US7307574B2 (en) 2005-02-02 2007-12-11 Sbc Knowledge Ventures, Lp Remote control, apparatus, system and methods of using the same
US8214859B2 (en) 2005-02-14 2012-07-03 At&T Intellectual Property I, L.P. Automatic switching between high definition and standard definition IP television signals
JP4464297B2 (ja) 2005-03-10 2010-05-19 パナソニック株式会社 再生装置、再生方法、及び再生プログラム
US7698223B2 (en) * 2005-04-21 2010-04-13 Microsoft Corporation Pluggable file-based digital rights management API layer for applications and engines
US8091142B2 (en) * 2005-04-26 2012-01-03 Microsoft Corporation Supplementary trust model for software licensing/commercial digital distribution policy
US8054849B2 (en) 2005-05-27 2011-11-08 At&T Intellectual Property I, L.P. System and method of managing video content streams
US7908627B2 (en) 2005-06-22 2011-03-15 At&T Intellectual Property I, L.P. System and method to provide a unified video signal for diverse receiving platforms
US8893199B2 (en) 2005-06-22 2014-11-18 At&T Intellectual Property I, L.P. System and method of managing video content delivery
US8635659B2 (en) 2005-06-24 2014-01-21 At&T Intellectual Property I, L.P. Audio receiver modular card and method thereof
US8282476B2 (en) 2005-06-24 2012-10-09 At&T Intellectual Property I, L.P. Multimedia-based video game distribution
US8365218B2 (en) 2005-06-24 2013-01-29 At&T Intellectual Property I, L.P. Networked television and method thereof
US9009079B2 (en) * 2005-07-01 2015-04-14 International Business Machines Corporation Planning assignment of software licenses
US8190688B2 (en) 2005-07-11 2012-05-29 At&T Intellectual Property I, Lp System and method of transmitting photographs from a set top box
US7873102B2 (en) 2005-07-27 2011-01-18 At&T Intellectual Property I, Lp Video quality testing by encoding aggregated clips
US20070155364A1 (en) * 2006-01-03 2007-07-05 Stefan Andersson Method and system for content based obligation enforcement in an electronic equipment
US7818261B2 (en) * 2006-01-18 2010-10-19 Corbis Corporation Method and system for managing licenses to content
KR101315076B1 (ko) * 2006-02-22 2013-10-08 코닌클리케 필립스 일렉트로닉스 엔.브이. Drm 보호 콘텐트 재배포 방법
US20070199015A1 (en) * 2006-02-22 2007-08-23 Microsoft Corporation System for deferred rights to restricted media
US10528705B2 (en) * 2006-05-09 2020-01-07 Apple Inc. Determining validity of subscription to use digital content
KR20070117127A (ko) * 2006-06-07 2007-12-12 김태웅 콘텐츠 관리 시스템 및 방법
US10229276B2 (en) * 2006-06-12 2019-03-12 Adobe Inc. Method and apparatus for document author control of digital rights management
US9471756B2 (en) * 2006-06-27 2016-10-18 Intuit Inc. Method and apparatus for authorizing a software product to be used on a computer system
WO2008021079A2 (en) 2006-08-08 2008-02-21 Wms Gaming Inc. Configurable wagering game manager
US20080109367A1 (en) * 2006-11-02 2008-05-08 General Electric Company Method and apparatus for self-licensing data
US8050434B1 (en) 2006-12-21 2011-11-01 Srs Labs, Inc. Multi-channel audio enhancement system
US20080155701A1 (en) * 2006-12-22 2008-06-26 Yahoo! Inc. Method and system for unauthorized content detection and reporting
US20080071886A1 (en) * 2006-12-29 2008-03-20 Wesley Scott Ashton Method and system for internet search
US20080183624A1 (en) * 2007-01-31 2008-07-31 Microsoft Corporation Protecting presentations and binding presentation elements to the presentation
US20090006261A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Portable device for carrying licenses
US9147049B2 (en) * 2007-08-16 2015-09-29 Honeywell International Inc. Embedded building conroller with stored software license information
US20090063620A1 (en) * 2007-08-29 2009-03-05 Hanna Ihab M Novel method and system for controlling access to features of a software program
US8458099B2 (en) * 2007-11-21 2013-06-04 Licensestream, Inc. System and method for online content licensing and distribution
US8953795B2 (en) * 2007-11-30 2015-02-10 Sony Corporation Forensic decryption tools
US20090254553A1 (en) * 2008-02-08 2009-10-08 Corbis Corporation Matching media for managing licenses to content
US20090210933A1 (en) * 2008-02-15 2009-08-20 Shear Jeffrey A System and Method for Online Content Production
US8725647B2 (en) * 2008-03-27 2014-05-13 Ca, Inc. Method and system for determining software license compliance
US20090249493A1 (en) * 2008-03-27 2009-10-01 Computer Associates Think, Inc. Method and System for Determining Software License Compliance
US8606718B2 (en) * 2008-03-27 2013-12-10 Ca, Inc. Method and system for determining software license compliance
DE102008020832B3 (de) 2008-04-25 2009-11-19 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Konzept zur effizienten Verteilung einer Zugangsberechtigungsinformation
US8769675B2 (en) 2008-05-13 2014-07-01 Apple Inc. Clock roll forward detection
CA2749799C (en) * 2009-01-15 2018-05-29 Electronic Warfare Associates, Inc. Systems and methods of implementing remote boundary scan features
US8130949B2 (en) * 2009-03-20 2012-03-06 Cisco Technology, Inc. Partially reversible key obfuscation
US8229115B2 (en) * 2009-07-15 2012-07-24 Cisco Technology, Inc. Use of copyright text in key derivation function
WO2011044710A1 (en) * 2009-10-12 2011-04-21 Safenet, Inc. Software license embedded in shell code
JP2011170465A (ja) * 2010-02-16 2011-09-01 Ricoh Co Ltd ソフトウェア配信システム、ソフトウェア配信方法およびプログラム
TWI539493B (zh) * 2010-03-08 2016-06-21 黛納羅伊有限責任公司 用於摻雜具有分子單層之矽基材之方法及組合物
US9646140B2 (en) * 2010-05-18 2017-05-09 ServiceSource Method and apparatus for protecting online content by detecting noncompliant access patterns
CN102065096B (zh) * 2010-12-31 2014-11-05 惠州Tcl移动通信有限公司 播放器、移动通讯设备、鉴权服务器、鉴权系统及方法
JP2012190268A (ja) * 2011-03-10 2012-10-04 Dainippon Printing Co Ltd コンテンツ利用端末、コンテンツ管理システム、コンテンツ管理方法、コンテンツ管理プログラムおよびサーバ装置
TWI557746B (zh) 2011-05-10 2016-11-11 電子戰協會公司 實施微電腦為基的電路之內容驗證的系統及方法
TWI546692B (zh) 2011-10-27 2016-08-21 電子戰協會公司 包括與已知電路板資訊有關之電路測試及驗證等特徵的裝置鑑別之系統及方法
US9165332B2 (en) 2012-01-27 2015-10-20 Microsoft Technology Licensing, Llc Application licensing using multiple forms of licensing
US8296190B1 (en) 2012-04-13 2012-10-23 T3Media, Inc. Digital content aggregation
US20130275275A1 (en) * 2012-04-13 2013-10-17 Thought Equity Motion, Inc. Digital content marketplace
KR101731934B1 (ko) * 2013-01-22 2017-05-11 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 소프트웨어 애플리케이션을 위한 안전장치 라이센싱
US9258664B2 (en) 2013-05-23 2016-02-09 Comhear, Inc. Headphone audio enhancement system
FR3009634B1 (fr) * 2013-08-09 2015-08-21 Viaccess Sa Procede de fourniture d'une licence dans un systeme de fourniture de contenus multimedias
US10242164B2 (en) 2015-10-19 2019-03-26 Microsoft Technology Licensing, Llc Managing application specific feature rights
DE102017121167A1 (de) * 2016-10-14 2018-04-19 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zum Betreiben eines Computersystems
US10404713B2 (en) 2017-09-29 2019-09-03 Zott, Inc. Multi-source broadcasting architecture
US11120107B2 (en) 2018-12-06 2021-09-14 International Business Machines Corporation Managing content delivery to client devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287408A (en) 1992-08-31 1994-02-15 Autodesk, Inc. Apparatus and method for serializing and validating copies of computer software
US5724425A (en) 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5745765A (en) 1995-10-23 1998-04-28 Calico Technology, Inc. Method and apparatus for automatic and interactive configuration of custom products
US5790664A (en) 1996-02-26 1998-08-04 Network Engineering Software, Inc. Automated system for management of licensed software
WO1998025373A2 (en) 1996-11-21 1998-06-11 Intellectual Protocols, L.L.C. Web site copy protection system and method
US6108420A (en) 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US5950001A (en) 1997-06-03 1999-09-07 Sun Microsystems, Inc. Method and apparatus for customizing a software component
US6263492B1 (en) * 1997-06-06 2001-07-17 Microsoft Corporation Run time object layout model with object type that differs from the derived object type in the class structure at design time and the ability to store the optimized run time object layout model
US6189146B1 (en) * 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US5963953A (en) 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
US6226747B1 (en) * 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100479668B1 (ko) * 2002-11-07 2005-03-31 에스케이 텔레콤주식회사 모바일게임에 있어서 디지털권리 관리시스템 및 방법
KR101053383B1 (ko) * 2003-02-21 2011-08-01 소니 일렉트로닉스 인코포레이티드 매체 콘텐츠 식별
US7788728B2 (en) 2004-01-08 2010-08-31 Samsung Electronics Co., Ltd. Method and apparatus for limiting number of times contents can be accessed using hash chain
KR100662336B1 (ko) * 2004-06-21 2007-01-02 엘지전자 주식회사 컨텐츠 다운로드 방법 및 그를 수행하기 위한 시스템
US7921464B2 (en) 2004-06-21 2011-04-05 Lg Electronics Inc. Method of downloading contents and system thereof
WO2007001118A1 (en) * 2005-06-29 2007-01-04 Lg Electronics Inc. Rights object, rights object issuing method, and contents controlling method using the same in digital rights management
KR100877956B1 (ko) * 2008-02-22 2009-01-13 주식회사 디지캡 다운로드 콘텐츠보호 시스템 및 그 접속방법
KR100877955B1 (ko) * 2008-02-22 2009-01-13 주식회사 디지캡 다운로드 콘텐츠보호 솔루션이미지 생성방법

Also Published As

Publication number Publication date
EP1163565A1 (en) 2001-12-19
MXPA01009194A (es) 2003-07-14
WO2000054128A1 (en) 2000-09-14
CN1346455A (zh) 2002-04-24
US6766305B1 (en) 2004-07-20
JP2002539515A (ja) 2002-11-19
BR0008948A (pt) 2001-12-26
CA2366834A1 (en) 2000-09-14
AU3522800A (en) 2000-09-28

Similar Documents

Publication Publication Date Title
KR20020003375A (ko) 라이센싱 콘텐츠용 시스템 및 방법
US8239954B2 (en) Access control based on program properties
US7096253B2 (en) Method and apparatus for streaming software
US7171558B1 (en) Transparent digital rights management for extendible content viewers
US6694434B1 (en) Method and apparatus for controlling program execution and program distribution
JP4864289B2 (ja) ネットワークユーザ認証システムおよび方法
EP1465040B1 (en) Issuing a publisher use licence off-line in a digital rights management (DRM) System
EP2316095B1 (en) Licensing protected content to application sets
KR20200093007A (ko) 모델 훈련 시스템 및 방법과, 저장 매체
US7516147B2 (en) URL system and method for licensing content
JP2008539503A (ja) ソフトウェアのライセンス供与/商用デジタル配信ポリシーのための補足的な信頼モデル
US7559087B2 (en) Token generation method and apparatus
CA2456400A1 (en) Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (drm) system
WO2007011584A2 (en) Digital application operating according to aggregation of plurality of licenses
US20020099733A1 (en) Method and apparatus for attaching electronic signature to document having structure
JP2004518205A5 (ko)
US20080163191A1 (en) System and method for file transfer management
US8127033B1 (en) Method and apparatus for accessing local computer system resources from a browser
WO2000046681A1 (en) Content certification
US20030065789A1 (en) Seamless and authenticated transfer of a user from an e-business website to an affiliated e-business website
US20060259976A1 (en) Method of and software for monitoring digital information
JP2004287566A (ja) コンテンツ部分秘匿化装置及びこれを利用したコンテンツ流通システム
US20020199117A1 (en) System for distributing application software
US20040267946A1 (en) Server access control
López et al. Ubiquitous Internet access control: the PAPI system

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee