KR20100136533A - P2p 서비스 편성을 위한 상호운용 시스템 및 방법 - Google Patents

P2p 서비스 편성을 위한 상호운용 시스템 및 방법 Download PDF

Info

Publication number
KR20100136533A
KR20100136533A KR1020107024495A KR20107024495A KR20100136533A KR 20100136533 A KR20100136533 A KR 20100136533A KR 1020107024495 A KR1020107024495 A KR 1020107024495A KR 20107024495 A KR20107024495 A KR 20107024495A KR 20100136533 A KR20100136533 A KR 20100136533A
Authority
KR
South Korea
Prior art keywords
service
computer system
node
content
rights management
Prior art date
Application number
KR1020107024495A
Other languages
English (en)
Other versions
KR101024237B1 (ko
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 KR20100136533A publication Critical patent/KR20100136533A/ko
Application granted granted Critical
Publication of KR101024237B1 publication Critical patent/KR101024237B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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/107License processing; Key processing
    • G06F21/1073Conversion
    • 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/108Transfer of content, software, digital rights or licenses
    • G06F21/1084Transfer of content, software, digital rights or licenses via third party
    • 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/108Transfer of content, software, digital rights or licenses
    • G06F21/1085Content sharing, e.g. peer-to-peer [P2P]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • 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
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • 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
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/18Licensing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Accounting & Taxation (AREA)
  • Data Mining & Analysis (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 출원서에서는 풍부한 미디어 경험을 가능하게 하는 자가조직화 서비스 네트워크의 형성을 지원하도록, 정책에 의해 관리되는 P2P (peer-to-peer) 서비스 편성을 수행하기 위한 시스템 및 방법이 설명된다. 일 실시예의 경우, 서비스는 P2P 통신 노드에 배포되며, 각 노드는 메시지 펌프와 워크플로 콜레이터를 이용해 메시지 라우팅과 편성을 제공한다. 서비스 인터페이스의 분산정책관리는 신뢰와 보안을 제공하는 데에 기여함으로써 가치의 상업적 교환을 지원한다. P2P 메시징과 워크플로 대조는 원시적 (primitive) 서비스의 이질적 집합으로부터 서비스가 동적으로 생성될 수 있도록 한다. 공유되는 리소스는 다수의 서로 다른 종류의 서비스로서, UDDI, SOAP 및 WSDL 을 바탕으로 구축된 웹 서비스에서 일반적으로 지원되는 것을 넘어서는 다양한 서비스 인터페이스 바인딩을 이용해 공유가 이루어진다. 바람직한 일 실시예에서는, 노드가 서로를 발견하여 상호작용과 가치 교환을 수행할 수 있도록 하고 광역통신망(WAN)에서 개인통신망(PAN)에 이르는 다수의 네트워크 계층에서 협력할 수 있도록 하는 미디어 서비스 프레임워크가 제공된다.

Description

P2P 서비스 편성을 위한 상호운용 시스템 및 방법{INTEROPERABLE SYSTEMS AND METHODS FOR PEER-TO-PEER SERVICE ORCHESTRATION}
본 발명은 상호운용 시스템 및 방법에 관한 것으로서, 상세하게는 디지털 콘텐츠와 미디어관련 서비스의 제공시 P2P 서비스 편성을 위한 상호운용 시스템 및 방법에 관한 것이다.
인터넷과 같은 네트워크는 디지털 콘텐츠와 미디어관련 서비스의 제공을 위한 지배적인 매체가 되고 있다. 표준 웹 서비스 프로토콜의 등장은 이러한 경향을 가속화할 것이며, 복수의 소프트웨어 플랫폼에 걸쳐 상호운용할 수 있고 표준화된 메커니즘을 통해 비지니스 서비스와 소비자간의 협력을 지원할 수 있는 서비스를 기업들이 제공할 수 있게 한다.
그러나 상호운용이 가능하고 안전한 미디어관련 서비스계의 목표에 대해 현저한 장벽이 존재하고 있다. 예를 들어, 다수의 중복되는 사실상의 (de facto) 표준과 공식 표준들은, 동일한 기본 상호운용성 및 상호연결 문제를 해결하기 위해 다소 표준적이지만 호환성없는 대체적인 기술들 사이에서 상이한 구현들을 선택하도록 강요함으로써, 직접적인 상호운용성을 실제로 방해할 수 있다. 일부 경우, 이러한 비호환성은 상이한 세대의 기술들을 통합하려는 시도에서 초래되는 문제로 인한 것이지만, 다른 경우, 그 문제는, 상이한 장소에서 동작하지만 동일한 시간에 동작하는 상이한 파티에 의해 행해지거나 상이한 요건으로 행해지는 시장 선택으로 인한 것이다. 따라서, 표준화에도 불구하고, 필요한 서비스를 제공하는 디바이스들을 위치확인, 접속 및 상호작용하기가 종종 어렵게 된다. 그리고 서로 다른 신뢰 모델과 보호 모델간에 비호환성 문제가 빈번하게 발생한다.
WSDL (Web Services Description Language) 과 같은 새로이 등장하고 있는 웹 서비스 표준이 인터넷기반 시스템의 상기 문제 중 일부를 해결하기 시작하고 있지만, 그러한 접근방식은 불완전하다. 이 접근방식은 개인통신망 (PAN) 및 근거리통신망 (LAN), 즉, 가정, 기업 및 부서의 게이트웨이, 및 광역통신망 (WAN) 에 걸쳐있는 다수의 네트워크 계층에서는 상기 문제들을 해결하지 못한다. 또한 이 접근방식은 다양한 서비스 인터페이스 바인딩 (예를 들어, CORBA, WS-I, Java RMI, DCOM, C 함수 호출, .Net 등) 을 사용하는 단순 및 복합 서비스의 동적 편성에 기초한 상호운용성에 대한 필요를 충분히 해결하지 못하므로, 따라서, 수많은 레거시 애플리케이션을 통합할 수 있는 능력을 제한하고 있다. 널리 도입되어 이용되고 있는 P2P 애플리케이션과 네트워크의 출현은, 디지털 콘텐츠 사용권을 명시하여 강제하는 방법에 관해 통일된 개념이 없다는 사실이 부분적인 원인이 되어, 상호운용이 가능한 미디어관련 서비스 창출이라는 도전을 더욱 복잡하게 하고 있다.
상호운용이 가능하고 안전한 미디어관련 서비스계의 목표에 대해 현저한 장벽이 존재하고 있다. 예를 들어, 다수의 중복되는 사실상의 (de facto) 표준과 공식 표준들은, 동일한 기본 상호운용성 및 상호연결 문제를 해결하기 위해 다소 표준적이지만 호환성없는 대체적인 기술들 사이에서 상이한 구현들을 선택하도록 강요함으로써, 직접적인 상호운용성을 실제로 방해할 수 있다. 일부 경우, 이러한 비호환성은 상이한 세대의 기술들을 통합하려는 시도에서 초래되는 문제로 인한 것이지만, 다른 경우, 그 문제는, 상이한 장소에서 동작하지만 동일한 시간에 동작하는 상이한 파티에 의해 행해지거나 상이한 요건으로 행해지는 시장 선택으로 인한 것이다. 따라서, 표준화에도 불구하고, 필요한 서비스를 제공하는 디바이스들을 위치확인, 접속 및 상호작용하기가 종종 어렵게 된다. 그리고 서로 다른 신뢰 모델과 보호 모델간에 비호환성 문제가 빈번하게 발생한다.
WSDL (Web Services Description Language) 과 같은 새로이 등장하고 있는 웹 서비스 표준이 인터넷기반 시스템의 상기 문제 중 일부를 해결하기 시작하고 있지만, 그러한 접근방식은 불완전하다. 이 접근방식은 개인통신망 (PAN) 및 근거리통신망 (LAN), 즉, 가정, 기업 및 부서의 게이트웨이, 및 광역통신망 (WAN) 에 걸쳐있는 다수의 네트워크 계층에서는 상기 문제들을 해결하지 못한다. 또한 이 접근방식은 다양한 서비스 인터페이스 바인딩 (예를 들어, CORBA, WS-I, Java RMI, DCOM, C 함수 호출, .Net 등) 을 사용하는 단순 및 복합 서비스의 동적 편성에 기초한 상호운용성에 대한 필요를 충분히 해결하지 못하므로, 따라서, 수많은 레거시 애플리케이션을 통합할 수 있는 능력을 제한하고 있다. 널리 도입되어 이용되고 있는 P2P 애플리케이션과 네트워크의 출현은, 디지털 콘텐츠 사용권을 명시하여 강제하는 방법에 관해 통일된 개념이 없다는 사실이 부분적인 원인이 되어, 상호운용이 가능한 미디어관련 서비스 창출이라는 도전을 더욱 복잡하게 하고 있다.
따라서, 본 명세서에 기술된 시스템 및 방법의 실시예는 전술한 문제점들의 전부 또는 일부를 해결하기 위해 이용될 수 있다.
본 명세서에 기술된 시스템 및 방법의 실시예는 전술한 문제점들의 전부 또는 일부를 해결하기 위해 이용될 수 있다. 일 실시예의 경우, 소비자 또는 기업 미디어 공간에 존재하는 다양한 타입의 이해관계자 (stakeholders) (예를 들어, 소비자, 콘텐츠 제공자, 디바이스 제조자, 서비스 제공자) 가 서로를 발견하고, 신뢰관계를 확립하며, 공개된 서비스 인터페이스를 통해 풍부하고 동적인 방식으로 가치를 교환하는 것을 가능하게 하는 서비스 프레임워크가 제공된다. 일반적으로 '미디어 편성을 위한 네트워크 환경 (Network Environment for Media Orchestration: NEMO)' 으로 부르게 될 이러한 프레임워크의 실시예는 이기종의 (heterogeneous) 소비자 디바이스, 미디어 포맷, 통신 프로토콜 및 보안 메커니즘의 세계에서 상호운용가능하고 안전한 미디어관련 전자상거래를 가능하게 하는 플랫폼을 제공할 수 있다. 서비스 인터페이스의 분산 정책관리 (Distributed policy management) 는 신뢰와 보안을 제공하는 데에 도움을 주기 위해 이용되어 가치의 상업적 교환을 촉진할 수 있다.
새로이 등장하는 웹 서비스 표준이 인터넷기반 서비스에 대한 상호운용성 문제를 해결하기 시작하고 있지만, NEMO의 실시예를 이용하여, 개인통신망 및 근거리통신망, 즉, 가정, 기업 및 부서의 게이트웨이, 및 광역통신망에 걸쳐있는 다수의 네트워크 계층에서 상호운용성을 해결할 수 있다. 예를 들어, NEMO는 휴대폰, 게임 플랫폼, PDA, PC, 웹기반 콘텐츠 서비스, 디스커버리 서비스, 통지 서비스, 업데이트 서비스 등을 이용하여 하나의 상호접속 시스템에서 상호운용성을 제공할 수 있다. 또한, NEMO의 실시예는 다양한 로컬 및 원격 인터페이스 바인딩 (예를 들어, WS-I [1], Java RMI, DCOM, C,.Net 등) 을 사용하는 단순 및 복합 서비스의 동적 P2P 편성을 제공하기 위해 이용될 수 있으며, 따라서, 레거시 애플리케이션의 통합을 가능하게 할 수 있다.
미디어 세계에서, 주요 이해관계자들 (예를 들어, 콘텐츠 발행자, 배포자, 소매상, 소비자 디바이스 제공자, 및 소비자) 에 의해 요구되거나 선호되는 시스템 및 인터페이스는 종종 큰 차이를 보인다. 따라서, 이러한 엔티티들에 의해 제공되는 능력을, 참여 엔티티의 요구를 충족시키는 최적의 구성으로 급속하게 발전시킬 수 있는 통합 서비스로 통일시키는 것이 바람직하다.
예를 들어, (다른 것들 중) 블루투스, UPnP, Rendezvous, JINI, UDDI, 및 LDAP 와 같은 다양한 서비스 디스커버리 프로토콜 및 레지스트리가 동일한 서비스내에 공존할 수 있기 때문에, 각 노드는 그 노드에 호스트하는 디바이스에 대해 가장 적합한 디스커버리 서비스(들)를 이용할 수 있게 된다. 또 다른 서비스는 무선 SMS 통지뿐만 아니라 IP기반 통지, 또는 다양한 미디어 포맷 (MP4, WMF 등) 을 지원할 수도 있다.
NEMO 의 실시예는 P2P 서비스 편성을 사용하여 이러한 목적을 만족시킨다. P2P 프레임워크의 장점이 음악과 비디오 배포와 같은 서비스에서 볼 수 있었지만, P2P 기술은 더욱 광범위한 이용이 가능하다.
웹 서비스에서의 활동 대부분이 비교적 정적인 (static) 네트워크 구성 및 클라이언트 서비스 상호작용을 갖는 머신간 (machine-to-machine) 상호작용에 포커싱하여 왔다. 또한, NEMO 는, 개인이 자신의 개인통신망 (PAN) 의 일부분을 휴대하고, LAN 또는 또 다른 PAN 근방으로 이동하여, 피어에 기초하여 다수의 추가 서비스에 접속하는 것을 원할 뿐만 아니라 서비스 액세스를 즉시 재구성하는 것을 원하는 상황을 처리할 수 있다.
미디어 및 기타 다양한 기업 서비스에서도 기회가 존재하는데, 특히 두 개 이상 기업간의 상호작용에서 두드러진다. 기업의 조직은 흔히 계층구조로 되어 있고 그 기업의 정보시스템이 이러한 구조를 반영하지만, 상이한 기업들로부터의 사람들은 종종 피어 인터페이스를 통해 더욱 효과적으로 상호작용할 것이다. 예를 들어, A 회사의 수신자/수신 서비스는 B 회사의 발송자와의 대화를 통해 더욱 직접적으로 문제를 해결하거나 유용한 정보를 얻을 수 있다. 계층구조나 불필요한 인터페이스를 횡단하는 것은 일반적으로 도움이 되지 않는다. (FedEx와 UPS 와 같은) 송달 물류업체는 이러한 점을 인식하여 자체 프로세스를 직접적으로 가시화함으로써, 이벤트를 고객이 직접 모니터링할 수 있게 하고 있다. 기업들 및 지방자치단체들은 그들의 서비스를 기업 포털을 통해 구성하여 초보적인 형태의 셀프서비스를 허용한다.
그러나 기존의 P2P 프레임워크의 경우, 일 기업으로 하여금, 그의 고객 및 협력업체가 그들에 가장 적합한 방식으로 기업의 서비스를 편성할 수 있는 자연적인 피어 레벨에서 그들이 상호작용하게 하는 방식으로, 그 기업의 다양한 서비스 인터페이스를 그들에게 공개시키도록 허용하지 않는다. 이러한 문제는, 예를 들어, 해당 피어 인터페이스에 대한 일정한 형식의 신뢰관리를 포함할 것이다. 본 발명의 바람직한 실시예는 이러한 서비스 인터페이스의 P2P 공개를 허용하기 위해서 뿐만 아니라 촉진시키기 위해 이용될 수 있다.
디지털 저작권 관리 (Digital Rights Management: DRM) 와 같은 특정 애플리케이션의 콘텍스트에서, NEMO 의 실시예를 이용하여, 폐쇄형의 동종 (homogeneous) DRM 시스템의 결점과 한계를 해결하도록 설계된 서비스-지향 아키텍처를 제공할 수 있다. 바람직한 실시예는, 이기종의 소비자 디바이스, 미디어 포맷, 및 보안 메커니즘에 대해 상호운용이 가능하고 안전한 미디어 관련 상거래 및 오퍼레이션을 제공하기 위해 이용될 수 있다.
보호 콘텐츠를 처리하기 위해 비교적 정교하고 무거운 클라이언트측 엔진이 요구되는 많은 종래의 DRM 시스템과 달리, 본 발명의 바람직한 실시예는 클라이언트측 DRM 엔진을 비교적 단순하게 하여, 해당 서비스 레벨에서 동작하는 더욱 풍부한 정책관리시스템에 의해 설정된 통제 (governance) 정책을 시행할 수 있다. 또한, 본 발명의 바람직한 실시예는 미디어 포맷과 암호 프로토콜의 선택에 있어서 증가된 유연성을 제공할 수 있고, DRM 시스템간의 상호운용성을 촉진할 수 있다.
단순하고, 개방적이며, 유연한 클라이언트측 DRM 엔진은 강력한 DRM-가능 (DRM-enabled) 애플리케이션을 구축하는 데에 이용될 수 있다. 일 실시예의 경우, DRM 엔진은 웹 서비스 환경, 즉, 사실상 임의의 호스트 환경이나 소프트웨어 아키텍처에 쉽게 통합하도록 설계되어 있다.
서비스 편성은 상호운용성 장벽을 극복하는 데에 이용될 수 있다. 예를 들어, 콘텐츠에 대한 쿼리가 존재하는 경우 그 요청을 이행하기 위해 다양한 서비스 (예를 들어, 디스커버리, 탐색, 매칭, 업데이트, 권리 교환, 및 통지) 를 조정할 수 있다. 이 편성 능력의 바람직한 실시예는 동적인 다중 계층 네트워크의 어느 지점에서든 사용자가 임의의 디바이스로부터 모든 가정 및 인터넷-기반 콘텐츠 캐시를 보는 것을 가능하게 한다. 이 능력이 스트림 및 재생목록의 공유를 촉진하도록 확대될 수 있으며, 권리가 존중되는 것을 보장하면서, 많은 상이한 디바이스를 이용해 즉석 (impromptu) 브로드캐스트와 내로우캐스트 (narrowcase)를 검색 및 연결하기 쉽게 한다. NEMO 의 바람직한 실시예는, 미디어 포맷, 권리 관리, 및 이행 프로토콜에 대한 표준들의 단일 세트에 의존하지 않는, 엔드 투 엔드 (end-to-end) 상호운용이 가능한 미디어 배포 시스템을 제공한다.
콘텐츠 개발자 (Originator), 배포자 (Distributor), 판매자 (Retailer), 서비스 제공자, 디바이스 제조업체, 및 소비자가 포함된 가치 체인에서, 종종 각 세그먼트에서는 다수의 국소적 필요성이 존재한다. 이것은, 콘텐츠 개발자가 다양한 콘텍스트에서 상이한 다운스트림 가치 체인 엘리먼트에 상이하게 적용되는 사용권을 명시할 수도 있는 권리 관리의 경우에 두드러지게 나타난다. 소비자 게이트웨이는 일반적으로 훨씬 더 협소한 관심 세트를 가지며, 디바이스는 더욱 더 간단한 관심 세트를 가질 수도 있고, 즉, 콘텐츠를 재생하기만 하면 된다. 동적인 자가-구성 (self-configuring) 배포 서비스의 충분히 자동화된 시스템을 통해, 콘텐츠 개발자는 콘텐츠를 제작 및 패키징하여 권리를 명시할 수 있으며, 소비자의 위치나 어떤 종류의 디바이스를 사용하고 있는지 관계없이 콘텐츠를 관심 있는 소비자에게 빠르게 제공하기 위해 다른 서비스 제공자에 의해 부가된 가치에 확실하게 의존할 수 있다.
NEMO 의 바람직한 실시예는 엔드 투 엔드 표준의 모놀리스 세트를 기다리거나 그 세트에 의존할 필요 없이 소비자와 사업자 모두가 이득을 얻는 새로운 서비스를 다수의 서비스 제공자가 처음으로 채용 및 도입하는 수단을 제공함으로써 이러한 목표를 달성한다. 정책 관리는 저작권 침해자가 이러한 적법한 서비스에 영향을 줄 수 있는 범위를 제한할 수 있다. NEMO 는, 네트워크 효과로 하여금, 저작권 침해자가 제공할 수 있는 것보다 더 나은 가치를 제공하는 적법한 서비스의 매우 풍부한 세트의 진화를 촉진할 수 있게 한다.
이하에서 논의되는 NEMO 실시예의 대부분에 공통되는 일부 "베스트 프랙티스" 기법에 포함되는 항목은 다음과 같다:
● 복합적인 디바이스-지향 정책과 서비스-지향 정책의 분리
● 더욱 단순한 서비스로부터 정교한 서비스의 구성
● 서비스의 동적인 구성 및 광고
● 이기종 환경에 있는 다양한 서비스의 동적 디스커버리 및 호출
● 간단한 디바이스로부터의 게이트웨이 서비스 활용
또한, NEMO 프레임워크와 함께 이용될 수 있는 신규한 DRM 엔진 및 아키텍처가 제공된다. 이러한 DRM 시스템은 다음과 같은 목표의 일부 또는 전부를 달성하는 데에 이용될 수 있다:
단순성. 일 실시예의 경우, 제어 프로그램 (예를 들어, 통제 정책을 시행하는 프로그램) 을 실행하는데 최소한의 스택-기반 가상 머신 (VM) 을 이용하는 DRM 엔진이 제공된다. 예를 들어, VM 은 수 페이지의 코드로만 구성될 수도 있다.
모듈형. 일 실시예에서, DRM 엔진이 더 큰 DRM-가능 애플리케이션에 통합된 단일한 모듈로서 기능하도록 설계되어 있다. 한때 (암호화 서비스와 같은) 모놀리스 DRM 커널에 의해 수행되었던 기능 중 대부분의 기능이 호스트 환경으로부터 요청될 수 있으며, 그 호스트 환경은 이러한 서비스를 다른 코드 모듈에 제공할 수도 있다. 이는, 설계자가 표준적 또는 독점적 기술을 비교적 쉽게 통합시킬 수 있게 한다.
유연성. 그 모듈형 설계 때문에, DRM 엔진의 바람직한 실시예는 내장형 (Embedded) 디바이스로부터 범용 PC 까지의 광범위하게 다양한 소프트웨어 환경에서 이용될 수 있다.
개방성. DRM 엔진의 실시예는, 사용자가 완전히 제어하는 시스템에서 및 사실상 임의의 프로그래밍 언어에서 사용자에 의해 코드 모듈과 API 가 구현될 수 있도록 하는 레퍼런스 소프트웨어 (Reference Software) 로 이용하는 데에 적합하다. 일 실시예의 경우, 시스템은 사용자에게 특정한 콘텐츠 포맷을 채택하도록 강요하거나 콘텐츠 인코딩을 제한하지 않고 있다.
의미적으로 알지못함 ( Semantically Agnostic ). 일 실시예에서, DRM 엔진은 인증요청을 그래프 구조에 관한 쿼리로 전환시키는 단순한 그래프기반 모델에 기초한다. 그래프의 정점 (vertices) 은 시스템의 엔티티를 나타내고 방향성 에지 (directed edges) 는 이들 엔티티들간의 관계를 나타낸다. 그러나, DRM 엔진은 이러한 정점과 에지가 임의의 특정 애플리케이션에서 무엇을 나타내는지 인식할 필요는 없다.
웹 서비스와의 심리스한 통합. DRM 클라이언트 엔진은 몇 가지 방식으로 웹 서비스를 사용할 수 있다. 예를 들어, 그래프의 정점과 에지가 서비스를 통해 동적으로 검색될 수 있다. 또한, 콘텐츠 및 콘텐츠 라이센스가 정교한 웹 서비스를 통해 검색되어 DRM 엔진으로 전송될 수도 있다. 비록 DRM 엔진의 일 실시예가 많은 장소에서 웹 서비스에 영향을 주도록 구성될 수도 있지만, 그 DRM 엔진의 아키텍처는 웹 서비스와 독립적이며, 단독형 (stand-alone) 의 클라이언트측 DRM 커널로서 이용될 수 있다.
단순화된 키 관리. 일 실시예에서는, 그래프 토폴로지 (topology) 를 재사용하여, 암호화 타깃변경 (retargeting) 을 요구하는 일 없이 콘텐츠 보호 키의 유도를 단순화할 수 있다. 이러한 키 유도 방법은 선택적이기는 하지만 DRM 엔진의 강력한 기능이며, 즉, 시스템이 추가적으로나 다른 대안으로서 다른 키 관리 시스템과 통합될 수 있게 한다.
통제, 암호화 및 콘텐츠의 분리. 일 실시예에서, 콘텐츠를 통제하는 제어는 그 통제 시행에 사용되는 암호화 (cryptographic) 정보와는 논리적으로 상이하다. 유사하게, 그 제어와 그 암호화 정보는 콘텐츠 및 콘텐츠 포맷과는 논리적으로 상이하다. 이러한 엘리먼트들 각각은 개별적으로나 통합 패키지로 전송할 수 있기 때문에, 콘텐츠 전송 시스템 설계에서 높은 수준의 유연성을 가능하게 한다.
NEMO 프레임워크, 그의 애플리케이션 및 그의 구성요소 일부의 실시예가 본 명세서에 기술되어 있다. 다수의 그 구성요소 및 애플리케이션과 마찬가지로 프레임워크 자체도 신규하다는 것을 이해해야 한다. 또한 프로세스, 장치, 시스템, 디바이스, 방법, 컴퓨터 판독가능 매체, 또는 이들의 조합으로서 포함하는, 많은 방식으로 본 발명을 구현할 수 있다는 점도 인식해야 한다. 이러한 및 다른 기능 및 장점은 다음의 상세한 설명, 및 발명의 독창적 부분의 원리를 예로서 도시하는 첨부 도면에서 상세히 제시된다.
발명의 독창적 부분의 실시예는 첨부 도면과 함께 다음의 상세한 설명을 참조함으로써 쉽게 이해될 것이며, 도면에서 유사한 참조번호는 유사한 구성 엘리먼트를 가리킨다.
도 1 은 시스템 프레임워크의 샘플 실시예를 도시한다.
도 2a 는 시스템 노드의 개념적 네트워크를 도시한다.
도 2b 는 P2P 네트워크의 시스템 노드를 도시한다.
도 2c 는 인터넷상에서 동작하는 시스템 노드를 도시한다.
도 2d 는 시스템 게이트웨이 노드를 도시한다.
도 2e 는 시스템 프록시 노드를 도시한다.
도 2f 는 시스템 디바이스 어댑터 노드를 도시한다.
도 3 은 DRM 디바이스의 개념적 네트워크를 도시한다.
도 4 는 개념적 DRM 노드의 인가 그래프를 도시한다.
도 5a 는 시스템 노드의 아키텍처에 대한 개념적 뷰를 도시한다.
도 5b 는 시스템 노드의 서비스 적응층 (adaptation layer) 에 의해 지원되는 다수의 서비스 인터페이스 바인딩을 도시한다.
도 6a 는 서비스 제공 시스템 노드와 서비스소비 시스템 노드간의 기본적 상호작용을 도시한다.
도 6b 는 서비스 제공 시스템 노드와 서비스소비 시스템 노드간의 상호작용의 또 다른 예이다.
도 7a 는 클라이언트측 WSDL 상호작용에 관계되는 서비스 액세스 포인트를 도시한다.
도 7b 는 클라이언트측 원시 (native) 상호작용에 관계되는 서비스 액세스 포인트를 도시한다.
도 7c 는 클라이언트측 점대점 (point-to-point) 상호작용 패턴에 관계되는 서비스 액세스 포인트를 도시한다.
도 7d 는 서비스측 1대 다 지점 (point-to-multiple point) 상호작용 패턴에 관계되는 서비스 액세스 포인트를 도시한다.
도 7e 는 서비스측 점 대 중개자 (point-to-intermediary) 상호작용 패턴에 관계되는 서비스 액세스 포인트를 도시한다.
도 8 은 서비스 적응층의 아키텍처에 대한 실시예를 도시한다.
도 9a 는 외부 서비스 제공자에 의존하는 워크플로 콜레이터 (Workflow Collator) 의 상호작용 패턴을 도시한다.
도 9b 는 클라이언트 노드와의 직접적인 다상 (multi-phase) 통신에 관계되는 워크플로 콜레이터의 상호작용 패턴을 도시한다.
도 9c 는 워크플로 콜레이터의 기본 인트라-노드 (intra-node) 상호작용 패턴을 도시한다.
도 9d 는 워크플로 콜레이터의 비교적 복잡한 상호작용 패턴을 도시한다.
도 10 은 DRM 엔진의 시스템 통합을 도시한다.
도 11 은 DRM 엔진의 아키텍처에 대한 실시예를 도시한다.
도 12a 는 클라이언트측 시스템 노드 내의 DRM 엔진 및 관련 엘리먼트를 도시한다.
도 12b 는 서비스측 시스템 노드 내의 DRM 엔진 및 관련 엘리먼트를 도시한다.
도 13 은 콘텐츠 보호 및 통제 DRM 오브젝트의 실시예를 도시한다.
도 14 는 노드 및 링크 DRM 오브젝트의 실시예를 도시한다.
도 15 는 DRM 암호화 키 엘리먼트의 실시예를 도시한다.
도 16 은 클라이언트와 서비스 제공 시스템 노드간의 기본적 상호작용 패턴을 도시한다.
도 17a 는 통지 핸들러 서비스를 지원하는 노드를 검색하는 통지 프로세싱 노드의 세트를 도시한다.
도 17b 는 통지 전송의 프로세스를 도시한다.
도 18a 는 요청 노드가 타깃으로 설정된 타깃 서비스 제공 노드에 대한 서비스 디스커버리 요청을 수행하는, 클라이언트-구동형 (client-driven) 서비스 디스커버리 시나리오를 도시한다.
도 18b 는 요청 노드가 자신의 설명을 서비스 제공 노드에 등록하는, 피어 등록 서비스의 디스커버리 시나리오를 도시한다.
도 18c 는 이해관계가 있는 노드가 서비스 가용성에서의 변경사항 (예를 들어, 서비스 제공 노드 내의 서비스 존재) 통지를 수신하는, 이벤트기반 서비스 디스커버리 시나리오를 도시한다.
도 19a 는 묵시적인 신뢰 채널과 바인딩하는 서비스를 이용해 신뢰를 확립하는 프로세스를 도시한다.
도 19b 는 요청/응답 모델에 기초하여 신뢰를 확립하는 프로세스를 도시한다.
도 19c 는 보안 증명서 (security credential) 의 명시적 교환에 기초하여 신뢰를 확립하는 프로세스를 도시한다.
도 20 은 서비스에 대한 정책-관리된 (policy-managed) 액세스를 도시한다.
도 21 은 멤버쉽 및 키 액세스 링크가 있는 샘플 DRM 노드 그래프를 도시한다.
도 22 는 DRM 가상 머신 (VM) 코드 모듈의 포맷에 대한 실시예를 도시한다.
도 23 은 시스템 기능 프로필 (profile) 의 계층구조를 도시한다.
도 24 는 DRM 음악 플레이어 애플리케이션의 시나리오를 도시한다.
발명의 독창적 부분에 대한 상세한 설명이 아래에 제시된다. 이러한 설명이 몇 가지 실시예와 함께 제시되고 있지만, 발명의 독창적 부분은 어느 하나의 실시예에 한정되지 않고 수많은 대안, 변형 및 등가물을 포괄하고 있음을 이해해야 한다. 예를 들어, 일부 실시예는 소비자지향 콘텐츠 및 애플리케이션의 콘텍스트에서 설명되고 있지만, 그 기술에 숙달한 사람들은 본 발명에서 개시된 시스템 및 방법을 더욱 넓은 애플리케이션에 쉽게 적용할 수 있다는 점을 인식할 것이다. 예를 들어, 이러한 실시예는 아무런 제한 없이 기업 콘텐츠와 애플리케이션의 콘텍스트에서 쉽게 구성 및 적용될 수 있다. 또한, 발명의 독창적 부분에 대한 철저한 이해를 제공하기 위해 아래 설명에서 다수의 특정 세부사항이 제시되지만, 일부 실시예는 이러한 내용의 일부 또는 전부 없이 실행될 수도 있다. 또한, 명확성을 기하기 위해, 해당 기술 분야에서 알려진 일정한 기술적 자료는 발명의 독창적 부분을 불필요하게 모호하게 하는 것을 피하기 위해 자세하게 설명되지 않았다.
1. 개념
1.1. 웹 서비스
웹 서비스 아키텍처 (WSA) 는 서비스-지향 아키텍처 (SOA) 의 특정 예이다. SOA 그 자체는 느슨히 연결된, 협동 소프트웨어 에이전트로 구성된 분산시스템의 타입이다. SOA 의 에이전트는 서비스를 제공하고 서비스를 요청 (소비) 할 수 있으며, 양자를 동시에 수행할 수도 있다. 서비스는 서비스 제공자의 역할을 하는 에이전트에 의해 관리되는 잘-정의된 자족적인 (self-contained) 오퍼레이션의 세트로 간주될 수 있다. 이 오퍼레이션은 엔드포인트 ( endpoint ) 라 부르는 네트워크-어드레싱가능한 위치에서 표준 프로토콜 및 데이터 포맷을 이용해 네트워크상에서 호출된다. 자족적이라는 말은 상기 서비스가 또 다른 서비스 또는 포함한 애플리케이션의 상태나 콘텍스트에 직접 의존하지 않음을 의미한다.
SOA 의 개념을 지원하는 확립된 기술의 예에는 CORBA, DCOM 및 J2EE 가 포함된다. WSA 는 특정한 플랫폼, 프로그래밍 언어, 애플리케이션 프로토콜 스택, 또는 데이터 포맷 규칙에 구속되지 않기 때문에 매력적이다. WSA 는, 서비스 설명과 메시지 교환을 위해 XML 에 기초한 표준 포맷을 이용하는데, 그 XML 은 제공자와 소비자간의 느슨한 커플링 및 상호운용을 촉진하며, 그 WSA는 다수의 표준 인터넷 프로토콜 (특히 HTTP) 을 지원하기 때문에 잠재적인 글로벌 분산 시스템에서 활용 및 참여를 촉진한다.
새로이 등장하고 있는 경향은 SOA 를 "플러그 앤 플레이 (plug-and- play)" 서비스 버스의 콘텍스트에서 보는 것이다. 이 서비스 버스 접근방식은 설명, 메시징 및 전송 표준에 영향을 줌으로써 서비스의 편성을 제공한다. 또한, 그 기반구조는 디스커버리, 변환, 보안 등에 대한 표준을 통합할 수도 있다. WSA에 통합된 유비쿼터스 표준의 고유 특질을 통해, 이 접근방식은 유연하고, 확장가능하며, 스케일러블하게 되므로 편성된 서비스 버스 모델을 구성하는 적절한 토대를 제공한다. 이 모델에서 근본적인 작업 (서비스) 단위를 웹 서비스라 부른다.
웹 서비스에 대한 정의는 다수 존재한다. 다음 정의는 월드와이드웹 컨소시엄 (W3C) 웹 서비스 아키텍처의 작업초안에 나오는 것이다 (2003년 8월 8일자- www.w3.org/TR/ws-arch 참조).
웹 서비스는 상호운용성이 있는 머신간 상호작용을 네트워크상에서 지원하기 위해 설계된 소프트웨어 시스템이다. 웹 서비스는 머신-프로세싱가능 포맷 (특히 WSDL) 에서 설명된 인터페이스이다. 일반적으로 다른 시스템들은 다른 웹-관련 표준과 관련하여 XML 직렬화에 의한 HTTP 를 사용하여 전송되는 SOAP 메시지를 이용하는 웹 서비스 설명에 의해 규정된 방식으로 웹 서비스와 상호작용을 한다.
W3C 의 정의가 유용한 출발점을 제시하고 있지만, "웹 서비스" 라는 용어는 예를 들어, 특정 표준, 포맷 및 프로토콜 (예를 들어, WSDL, SOAP, XML, HTTP 등) 의 사용에 대하여 여기에서 더욱 넓은 의미로 적용된다는 점을 이해해야 한다.
특정한 웹 서비스는 서비스 제공자와 서비스 요청자간 관계 (아마도 일시적인 관계) 의 토대를 제공하는 오퍼레이션들의 논리적인 코히런트 세트를 위한 추상적인 인터페이스로 설명될 수 있다.
물론, 실제 웹 서비스는 구체적인 구현방식을 갖는다. 서비스 제공자의 구체적인 구현은 종종 서비스 (웹 서비스와는 다름) 라고 칭해진다. 서비스 제공자를 위한 기능을 실제로 구현하는 소프트웨어는 제공자 에이전트 ( provider agent) 이고, 서비스 요청자를 위한 것은 요청자 에이전트 ( requester agent ) 이다. 이러한 에이전트를 소유하는 사람이나 조직은 경우에 따라 제공자 엔티티 (entity) 요청자 엔티티라고 칭해진다. 단독으로 쓰이는 경우, 요청자 또는 제공자는 콘텍스트에 따라 엔티티 또는 에이전트 중 어느 하나를 각각 지칭한다.
웹 서비스는 일정한 목적을 이행하기 위해 존재하며, 그 목적의 달성 방법은 특정한 웹 서비스 메시지 교환의 메케닉 ( mechanics )시맨틱에 의해 특정된다. 여기서 메케닉은 정밀한 머신-프로세싱가능한 기술적 사양으로서 네트워크상에서 메시지 교환이 이루어질 수 있도록 하는 것을 말한다. 이 메케닉은 엄밀하게 정의되는 반면 시맨틱은 그렇지 않을 수도 있다. 시맨틱이라 함은 그 형식을 불문하고 웹 서비스에 대해 요청자 엔티티와 제공자 엔티티간의 이해 및 전반적인 기대를 규정하는 명시적이거나 묵시적인 "약정 (contract)" 을 말한다.
웹 서비스는 종종 다음 세가지 역할의 상호작용 측면에서 그 모델링된다: (i) 서비스 제공자; (ii) 서비스 요청자; 및 (iii) 서비스 레지스트리. 이 모델에서, 서비스 제공자는 그의 웹 서비스를 서비스 레지스트리에 설명하는 정보를 "발행 (publish)" 한다. 서비스 요청자는 이 정보를 어떤 디스커버리 메커니즘을 통해 "발견 (find)" 한 후, 해당 서비스를 활용하기 위해 서비스 제공자에 "바인딩 (bind)" 하는데 이 정보를 이용한다. 바인딩이 단순히 의미하는 바는, 발행된 서비스 설명에서 제공자에 의해 특정된 메시지 포맷팅 (formatting), 데이터 맵핑, 및 전송 프로토콜 협정을 이용하여, 요청자가 제공자에 의해 이용가능한 오퍼레이션을 호출한다는 것이다. 이러한 정보를 설명하기 위해 사용되는 XML 기반 언어를 WSDL (Web Services Description Language) 이라고 부른다.
서비스 제공자는 WSDL 서비스 설명에 의해 기술된 특정한 목적을 위한 오퍼레이션의 일부 세트에 액세스를 제공하며, 이 서비스 설명은 해당 서비스가 검색될 수도 있도록 다수의 수단 중 임의의 수단에 의해 레지스트리로 발행된다. 레지스트리는 특정 도메인내에서 공개 또는 비공개 레지스트리가 될 수도 있다.
서비스 레지스트리는 이전에 발행된 서비스 설명을 반환함으로써 서비스 탐색 요청에 응답하는 소프트웨어이다. 서비스 요청자는 레지스트리로부터 얻은 WSDL에 특정된 바인딩 정보에 따라 제공자에 의해 제공되는 다양한 오퍼레이션들을 호출하는 소프트웨어이다.
서비스 레지스트리는 단지 개념적으로만 존재하거나, 특정 서비스에 대한 쿼리, 위치확인 및 바인딩에 이용되는 서비스 설명의 데이터베이스를 제공하는 실제 소프트웨어로서 사실상 존재할 수도 있다. 그러나 요청자가 실제로 적극적인 서비스 탐색을 수행하는지 여부와 관계없이, 또는 서비스 설명이 정적으로나 동적으로 제공되는지 여부와 관계없이, 레지스트리는 웹 서비스 모델의 논리적으로 독특한 양태이다. 흥미로운 사실은, 현실세계의 구현에서 서비스 레지스트리가 서비스 요청자 플랫폼이나 서비스 제공자 플랫폼의 일부일 수도 있거나, 일부 잘 알려진 어드레스나 다른 수단을 통해 제공된 어드레스에 의해 전체로 식별된 또 다른 위치에 상주할 수도 있다는 점이다.
WSDL 서비스 설명은 종종 SOA 이면의 중심 주제가 되는 느슨한 결합을 지원한다. 궁극적으로 서비스 요청자는 일부 바라는 결과를 달성할 목적으로 소비하는 서비스의 인터페이스에 관한 시맨틱을 이해하게 되지만, 서비스 설명은 서비스 인터페이스를 특정 서비스 바인딩 정보로부터 격리시키고 매우 동적인 웹 서비스 모델을 지원한다.
서비스지향 아키텍처는 다수의 가능한 기술 층 상단에 구축될 수 있다. 현재 실행되는 바와 같이, 웹 서비스는 일반적으로 다음의 기술들의 양태들을 통합하거나 그 기술들과 관련된다:
HTTP - 대부분의 웹 서비스 통신을 위한 표준 애플리케이션 프로토콜. 비록 웹 서비스가 다양한 네트워크 프로토콜 (예를 들어, SMTP, FTP 등) 을 통해 이용될 수 있지만, 사용되고 있는 프로토콜 중에서 가장 유비쿼터스하고 방화벽에 친숙한 전송 프로토콜은 HTTP 이다. 특히 인트라넷 내부의 일정 애플리케이션의 경우, 요구사항에 따라 다른 네트워크 프로토콜이 합리적인 것이 될 수도 있지만, 그럼에도 HTTP 가 오늘날 구축된 거의 모든 웹 서비스 플랫폼의 일부이다.
XML - 구성 정보의 콘텐츠 (및 그 콘텐츠에 관한 정보) 에 대한 형식화 및 액세스를 위한 표준. XML 은 웹 서비스 에이전트간에 정보를 전달하기 위한 텍스트기반의 표준이다. 중요한 사실은 XML 을 사용한다고 해서 웹 서비스에 대한 메시지 페이로드에 임의의 이진 (binary) 데이터가 포함되어 있지 않다는 것을 의미하진 않고, 그 이진 데이터가 XML 규칙에 따라 포맷팅될 것임을 의미한다는 점이다. 대부분의 웹 서비스 아키텍처는 메시지와 데이터가 반드시 문자 스트림에 직렬화되어야 한다고 지시하지는 않으며, 즉, 그 메시지와 데이터는 이치에 맞는 이진 스트림에 직렬화될 수 있지만, XML 이 사용되고 있다면 이 스트림은 XML 문서를 나타내게 된다. 즉, 전송 메커니즘 레벨 이상에서는 웹 서비스 메시징이 종종 XML 문서를 이용해 수행될 것이다.
많은 웹 서비스에 대해 특히 중요한 두 개의 XML 서브세트 기술은 XML 네임스페이스 (namespace) 와 XML 스키마 (schema) 이다. XML-네임스페이스는, 네이밍 충돌을 해결하고 XML 문서에 포함된 엘리먼트에 특정 의미를 주장하기 위해 이용된다. XML-스키마는 XML 문서에 포함된 다양한 정보 아이템을 정의 및 제약하기 위해 이용된다. 비록 이러한 목적을 다른 수단에 의해 달성하는 것이 가능하지만 (그리고 선택이지만), XML을 이용하는 것은 아마도 오늘날 이용되는 가장 흔한 기법이다. 웹 서비스 문서 자체에 대한 XML 문서 포맷 설명은 XML 스키마를 이용해 정의되며, 나아가 가장 현실적인 세계의 웹 서비스 오퍼레이션과 메시지 자체는 XML 스키마를 통합하여 정의될 것이다.
SOAP - 다른 수신기로의 전송 및 그 수신기에 의한 처리를 위해 특수하게 포맷팅된 패키지로 명령 및 정보를 캡슐화하기 위한 XML 기반 표준. SOAP (Simple Object Access Protocol) 는 에이전트간 전송을 위해 웹 서비스 메시지를 캡슐화하기 위한 표준 메커니즘이다. 다소 틀린 명칭이기는 하지만 SOAP 의 레거시는 분산 오브젝트를 호출하는 수단으로서 존재하며 이 점에서 다른 대안들보다 "더욱 간소화된" 것이지만, 최근의 경향은 SOAP 를 그 약어의 본래 의미를 초월한 목적을 위한 XML기반의 와이어 (wire) 프로토콜로서 SOAP를 간주한다.
SOAP 는 메시지 구성과 콘텐츠에 관한 정보 제공을 위해 비교적 가벼운 규칙을 정의하고 있다. 각각의 SOAP 문서에는 헤더와 본문으로 나누어지는 엔벨로프 (envelope) 가 포함된다. 비록 구성은 유사하지만, 일반적으로 헤더는 본문에 포함된 콘텐츠 처리와 관련된 수신기를 위한 메타정보나 명령을 위해 사용된다.
또한, SOAP 는 특성 및 그 특성의 의무를 이행하기 위해 필요한 프로세싱을 식별하는 수단을 특정한다. 메시지 교환 패턴 (MEP) 은 노드간 메시지 교환 방법에 대한 패턴을 정의하는 특성이다. 일반적인 MEP 는 요청-응답으로서, 이 MEP 는 요청 노드와 응답 노드간의 단일하고 완전한 메시지 트랜잭션을 확립한다 (http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#soapsupmep 참조).
WSDL - 웹 서비스 이용 방법을 설명하기 위한 XML 기반의 표준. WSDL 의 관점에서 보면, 서비스는 서비스 요청자와 서비스 제공자간에 교환되는 메시지의 세트에 관한 것이다. 메시지는 특정 프로토콜에 맵핑될 수 있는 추상적 방식으로 설명된다. 일정한 기능을 호출하는 메시지 교환을 오퍼레이션이라고 부른다. 오퍼레이션의 특정 세트는 인터페이스를 정의한다. 인터페이스는 네임드 바인딩 (named binding) 에 의해 구체적인 메시지 포맷 및 프로토콜에 구속된다. 바인딩 (인터페이스의 구체적인 프로토콜로의 맵핑) 은 프로토콜에 적절한 URI 와 관련되며, 엔드포인트에 이르게 한다. 한 개 이상의 관련 엔드포인트의 컬렉션 (인터페이스를 특정 URI 에서 구체적인 프로토콜에 맵핑함) 은 서비스를 포함한다.
상기 정의들은 다음과 같은 구체적인 WSDL 엘리먼트에 맵핑한다.
Types 타입 정의를 위한 컨테이너 엘리먼트
Message 전송되는 데이터 타입의 추상적 정의
Operation 입력, 출력 및 오류 메시지의 조합에 기초하는, 액션의 추상적 설명
portType 오퍼레이션의 추상적 집합 - 인터페이스
binding 인터페이스 ( portType ) 의 구체적인 프로토콜 및 데이터 포맷의 규격
port 바인딩과 실제 네트워크 어드레스의 조합 - 엔드포 인트
service 관련 포트 ( 엔드포인트 ) 의 컬렉션
WSDL 은 공통된 바인딩 메커니즘을 정의한 후, SOAP, HTTP GET/POST 및 MIME 에 대한 구체적인 바인딩 확장을 정의한다. 따라서 바인딩은 반드시 전송 프로토콜에 대한 직접적인 바인딩을 의미하지는 않고 특정 와이어 포맷에 대한 바인딩을 의미한다. 비록 실제 SOAP 메시지 교환이 일반적으로 포트 80을 통해 HTTP 상에서 (http:// URI 를 통해) 일어나지만, 웹 서비스에 대해 가장 공통된 바인딩은 SOAP 이다. 그러나 인터페이스는 직접 HTTP 에 바인딩 될 수 있으며, 다른 방법으로, 예를 들어, SOAP 에 대한 바인딩은 (mailto:// URI 를 통해) SMTP를 이용할 수 있다. 또한, 구현은 자신의 와이어 포맷을 정의하고 맞춤형 바인딩 확장을 이용할 수 있다.
WSDL은 <import> 엘리먼트를 지원함으로써 유지보수성 (maintainability) 과 재사용성 (reusability) 을 촉진한다. WSDL 문서는 <import> 요소를 이용하여, 일정 조직에 대해 합리적인 방식으로 개별적인 부분으로 나누어질 수 있다. 인터페이스 정의와 구현 정의간에 일정 수준의 분리를 원하는 코히런트한 웹 서비스 환경의 경우, 다음과 같이 세 개의 문서로 분리하는 것이 합리적이다.
스키마 (.xsd) 문서 - 루트 노드는 <schema> 이고 네임스페이스는 "http://www.w3.org/2001/XMLSchema" 임
재사용 가능 (reusable) 부분이라고 간주되는 것이 포함된 서비스 인터페이스 설명
<message>
<portType>
<binding>
특정한 서비스 엔드포인트가 포함된 서비스 구현 설명
<service>
WSDL 인터페이스는 자바 (또는 IDL이나 기타 프로그래밍 언어) 인터페이스와 정확하게 같지는 않다. 예를 들어, 자바 인터페이스 선언 (declaration) 은, 적어도 해당 인터페이스의 구현을 요구하는 클래스의 방법들의 서브세트에 매칭해야 하는 방법들의 세트를 특정한다. 2 이상의 클래스가 인터페이스를 구현할 수 있으며, 각 구현은 상이할 수 있지만, 일반적으로 방법 서명 (방법 이름 그리고 입력이나 출력 타입) 은 반드시 동일해야 한다. 이는 해당 언어에 의해 지정되며 컴파일 시간이나 런타임 또는 두 가지 모두에서 지정된다.
WSDL 인터페이스의 경우 자바 인터페이스와는 상이하며, 단독으로는 충분한 유용성이 없는 실제의 추상 클래스와 더욱 비슷하다. 단일 웹 서비스의 다양한 WSDL 인터페이스나 portType 은 오퍼레이션 이름의 세트가 동일해야 된다는 의미에서 논리적으로 관련되어 있지만 (마치 사실상 portType 이 다른 어딘가에서 정의된 구체적인 약정을 구현하는 것처럼), 그러한 엘리먼트는 실제로 존재하지 않으며 portType 의 대칭성을 강요할 메커니즘도 없다. 각 portType 은 비록 하나의 portType 만으로는 바인딩을 생성하지는 않지만, 일반적으로 그 portType이 지원하는 바인딩의 타입을 식별하기 위해 그 이름이 정해진다. 관련 portType 에 대한 portType 오퍼레이션은 동일하게 이름이 정해지지만, (존재하는 경우) 입력, 출력 및 오류메시지는 특정한 바인딩 지원에 필요한, 이름이 정해진 부분을 포함하는 특정 메시지에 맵핑된다. 이 사실은 메시지 그 자체가 완전히 추상적인 것은 아니라는 점을 제기한다. 웹 서비스는 요구되는 다양한 바인딩에 대해 유사하지만 구별되는 메시지를 정의하는데 필요로 할 수도 있고 종종 필요로 한다.
아래 도시하는 바와 같이, 새로이 등장하고 있는 웹 서비스 및 관련 표준에 영향을 줌으로써, 광범위한 하드웨어 플랫폼 및 소프트웨어 플랫폼 및 동작 환경을 통해 다양하고 상이한 프로토콜 및 인터페이스를 이용하는 네트워크화된 상호운용가능한 미디어 관련 서비스의 생성을 촉진하는 시스템 아키텍처가 개발될 수 있다.
1. 2. 역할
본 발명의 바람직한 실시예는, 서비스를 공개시킴으로써 피어가 자연적으로 다양한 기능을 제공할 수 있는 P2P 환경을 가능하게 하거나 촉진하거나 활성적으로 지원하는 것을 추구한다. 프레임워크의 일 실시예는 능력의 고정된 세트를 갖는 것으로 피어를 간주하는 것을 억제하고 그 대신에 어느 시점에서든 피어가 하나 이상의 역할에 대한 참가자가 되는 모델을 장려한다.
하나의 역할은 소정의 피어가 특정 행위 패턴과 결합하여 공개시키는 서비스 세트에 의해 정의될 수 있다. 어떤 시점에서든 NEMO-가능 노드는 다양한 인자들, 즉, 소정의 서비스 세트를 지원하기 위한 기능을 제공하는 그 노드의 실제 구현 풋프린트, 관리 구성, 피어에 의해 공개될 수 있는 서비스(들)을 선언하는 정보, 및 서비스 인터페이스상의 로드 및 런타임 정책에 기초하여 여러 역할을 수행할 수도 있다.
명시적인 역할 세트는 다양하고 상이한 타입의 서비스에 기초하여 정의될 수 있다. 시간이 지나면서 참가자의 공통 패턴이 결정되고 새로운 서비스가 도입됨에 따라, 더욱 공식적인 역할 분류 방식이 정의될 수 있다. 시간이 지남에 따라 형식화될 수 있는 예비적인 역할 세트는 다음 항목들을 포함할 수 있다:
클라이언트 - 아무런 서비스에도 공개되지 않고 피어가 다른 피어들의 서비스를 단지 이용하게 되는 비교적 단순한 역할이다.
인가자 ( Authorizer ) - 이 역할은 요청 주체 (principal) 가 소정의 사전조건 및 사후조건의 임의의 세트로 특정된 리소스에 액세스 권한을 갖는지 여부를 결정하는 정책 결정점 (PDP) 으로 동작하는 피어를 나타낸다.
게이트웨이 - 일정한 상황에서 피어는 다음과 같은 이유에서 다른 서비스 제공자를 직접 검색하지 못하거나 그와 상호작용을 하지 못할 수도 있다: 전송 프로토콜 비호환성, 신뢰 콘텍스트 협의 불능, 또는 소정의 서비스와 관련된 필수 메시지의 생성 및 프로세싱를 위한 프로세싱 능력의 부족. 게이트웨이는, 또 다른 피어에 대한 브리지 역할을 하여, 그 또 다른 해당 피어로 하여금 서비스 제공자와의 상호작용을 할 수 있도록 하는 피어를 말한다. 아이덴티티의 관점에서 그리고 오퍼레이션에 대한 인가된 신뢰 콘텍스트를 확립하는 관점에서 보면, 요청 피어는 그의 아이덴티티를 게이트웨이 피어에게 실제로 위임하여 해당 피어로 하여금 자신을 대신하여 협의하고 결정을 내릴 수 있도록 허용할 수도 있다. 또는, 게이트웨이 피어는 요청 및 응답을 포워딩하거나 라우팅하는 단순 중계 포인트 (relay point) 의 역할을 할 수도 있다.
편성기 - 서비스 제공자 세트와의 상호작용이 서비스 (트랜잭션, 분산 상태관리 등) 의 사소하지 않은 조정 (nontrivial coordination) 을 수반하는 상황에서는, 피어의 참가 능력을 벗어날 수도 있다. 편성기는 게이트웨이 역할의 특수화이다. 피어는 편성기에게 자신을 대신하여 하나 이상의 서비스를 제공하기 위해 간섭할 것을 요청할 수도 있다. 편성 피어는 적절히 구성된 워크플로 콜레이터와 같은 일정 부가적인 NEMO 컴포넌트들을 이용하여 편성 요구사항을 충족시킬 수도 있다.
"적당한 이용 규칙 세트를 준수하는 임의의 기기를 통해, 임의의 포맷으로, 임의의 소스로부터, 임의의 장소에서, 임의의 시간에 임의의 미디어에 대한 요청을 충족시킴으로써 즉시 만족을 제공" 한다는 목적을 고려할 때, 다음과 같은 비공식 모델은 NEMO 프레임워크의 실시예를 이용하여 상기 목적을 달성할 수 있는 방법을 도시한다. 모델의 최상위 레벨에서 (상상할 수 있는 모든 미디어 서비스를 NEMO 가 가능하게 하는 방법의 모든 양태들을 열거하지는 않고), NEMO 가 모델의 서로 다른 계층으로부터의 저레벨 서비스를 더욱 풍부한 엔드 투 엔드 미디어 서비스로 어셈블리될 수 있도록 하는 방법이 명확해질 것이다.
이 모델의 일 실시예에는 다음과 같은 서비스 엘리먼트의 4계층이 존재한다: 1) 콘텐츠 오서링 (authoring), 어셈블리 및 패키징 서비스, 2) 웹기반 콘텐츠 집합 및 배포 서비스, 3) 홈 게이트웨이 서비스, 및 4) 소비자 가전 기기.
일반적으로 이러한 4개의 계층은 각각 보안, 권리 관리, 서비스 디스커버리, 서비스 편성, 사용자 인터페이스, 복잡도 및 기타 서비스 속성에 대해 서로 다른 요구사항을 가진다. 처음 2 개의 계층은 "종래의" 웹 서비스에 대해 볼 수 있는 모델에 매우 개략적으로 적합하지만, 다른 2 개의 계층은 개인용 논리 네트워크 모델이라 부를 수 있는 모델 중에서 홈 게이트웨이의 일정한 서비스가 두 종류의 모델간의 중추부 (nexus) 에 존재하는 그러한 모델에 적합하다. 그러나 CE 디바이스에 대한 서비스는 때때로 임의의 계층에서 나타난다.
하나의 딜레마는 엔드 투 엔드 솔루션을 포함하는데 충분히 일반적인 성격을 유지하면서도 구현의 효율성을 위해 프레임워크의 일부를 특수화하려는 소망에 있다. 예를 들어, UDDI 의 디렉터리와 디스커버리 접근방식은 비교적 정적이고 중앙화된 웹 서비스에 대해 효과적으로 작동할 수도 있지만, 개인 네트워크의 더욱 동적이고 일시적인 병합에 대해서는 UPnP 및 Rendezvous 에서 발견되는 모델들과 같은 디스커버리 모델이 더욱 적절한 것일 수도 있다. 따라서 일부 실시예에서는 프레임워크 내에 다수의 디스커버리 표준이 수용된다.
마찬가지로, 권리 관리가 도매업 (wholesale), 수집자 (aggregator), 소매업 배포 서브-계층을 통해 미디어 배포에 적용되는 경우, 명시되어 추적될 필요가 있는 다수의 서로 다른 타입의 복잡한 권리와 의무가 있을 수 있으므로 매우 명시적이고 복잡한 권리 언어, 정교한 콘텐츠 통제 및 클리어링 (clearing) 서비스, 그리고 글로벌 신뢰 모델의 필요성을 암시한다. 그러나 홈 게이트웨이 및 (CE) 디바이스 계층에 대한 권리 관리와 콘텐츠 통제는, 소비자의 관점에서 비교적 정직하게 보이는 공정한 사용권을 강조하는 서로 다른 신뢰 모델을 수반할 수도 있다. 개인용 논리 네트워크의 피어 디바이스는 해당 네트워크의 비교적 단순한 신뢰 모델을 이용하여, 및 아마도 프록시 게이트웨이 서비스를 통해 글로벌 신뢰 모델을 이용하여 광역통신망 (WAN) 상의 피어들과 상호작용을 할 수 있는 능력으로, 상호작용을 하기 원할 수도 있다. 소비자 엔드에서의 경우, 일부가 이동성이 있어 간헐적으로 다수의 네트워크를 교차하는 디바이스에 대한 콘텐츠 가용성의 자동화된 관리로 인해 복잡해진다. 따라서, 권리 관리에 대한 효과적인 접근방식은 엔드 투 엔드 배포를 가능하게 하면서도 이질적일 수도 있으며, 판매 트랜잭션과 함께, 또는 가입자 권리 (subscription right) 가 행사되는 경우의 아마도 또 다른 이벤트와 함께 편성되는 트랜잭션에서 개별 소비자의 사용권에 대해, 배포 권리의 표현을 해석하여 번역하는 서비스를 포함하는 다양한 권리 관리 서비스를 지원할 수 있다.
1. 3. 논리적 모델
일 실시예의 경우, 시스템 프레임워크는 P2P 방식으로 상호작용을 하는 논리적으로 연결된 노드의 세트로 구성된다. 종종 P2P 컴퓨팅은 컴퓨터 및 기타 인텔리전트 기기들 사이의 리소스 (하드디스크 드라이브와 프로세싱 사이클 등) 공유로 정의된다. http://www.intel.com/cure/peer.htm 참조. 여기에서, P2P 는 네트워크 노드가 모든 종류의 서비스를 대칭적으로 소비 및 제공할 수 있도록 해주는 통신 모델로 간주될 수도 있다. P2P 메시징 및 워크플로 대조 (workflow collation) 는 더욱 원시적인 (primitive) 서비스의 이질적인 세트로부터 풍부한 서비스가 동적으로 생성될 수 있도록 한다. 이를 통해, 심지어 서로 다른 서비스 바인딩을 이용하여, 공유되는 리소스가 다수의 서로 다른 타입의 서비스인 경우 P2P 컴퓨팅의 가능성을 조사할 수 있게 된다.
서로 다른 실시예가 이해관계자 (예를 들어, 소비자, 콘텐츠 제공자, 디바이스 제조업체, 서비스 제공자) 로 하여금 서로를 발견하여 상호작용을 하고 가치를 교환하며 풍부하고 동적인 방식으로 협력할 수 있도록 하는 미디어 서비스 프레임워크를 제공할 수 있다. 이러한 서로 다른 타입의 서비스는 기본적인 것 (디스커버리, 통지, 탐색, 파일 공유 등) 으로부터 더욱 복잡한 고레벨 서비스 (로커 (locker), 라이센싱, 매칭, 인가, 페이먼트 트랜잭션 등), 그리고 이들 서비스의 조합에 이르기까지 다양하다.
서비스는, 각각이 메시지 펌프 및 (더 상세히 후술될) 워크플로 콜레이터를 이용해 메시지 라우팅과 편성을 제공하는 P2P 통신 노드들상에서 배포될 수 있다.
노드는 서비스 호출을 요청하여 응답을 수신하는 방식으로 상호작용을 한다. 이러한 요청 및 응답 메시지의 포맷과 페이로드 (payload) 는, 서비스들 및 그들의 관련 인터페이스 바인딩의 설명과 구성을 가능하게 하는 확장 가능한 데이터 타입의 세트를 구현한 표준 XML스키마 기반의 웹 서비스 설명 언어 (예를 들어, WSDL) 로 정의되는 것이 바람직하다. WSDL 의 오브젝트 타입의 대부분은 다형성 (polymorphic) 이 있으므로 새로운 기능을 지원하도록 확장이 가능하다. 시스템 프레임워크는, 단일 서비스 제공자와의 직접적인 상호작용으로부터 다수의 서비스 제공자로부터의 조율된 서비스 세트에 대한 복잡한 집단에 이르기까지 다양한 통신 패턴의 구성을 지원한다. 일 실시예의 경우, 프레임워크는 기존의 서비스 조율 표준 (chreography standard) (WSCI, BPEL 등) 을 이용하기 위한 기본 메커니즘을 지원하는 한편, 서비스 제공자에게 자신의 규칙을 사용할 수 있도록 허용하기도 한다.
서비스 호출과 관련된 메시지의 신택스는 시스템 프레임워크 내에서 사용되는 핵심 데이터 타입이 그렇듯이, 비교적 유연하고 휴대가능한 방식으로 설명되는 것이 바람직하다. 일 실시예의 경우, 이 사항은 설명된 서비스와 관련된 시맨틱 설명을 레퍼런스하기 위해 비교적 단순한 방법을 제공할 수 있도록 WSDL 을 이용해 달성된다.
서비스 인터페이스는 한 개 이상의 서비스 바인딩을 가질 수 있다. 그러한 실시예의 경우, 노드는 또 다른 노드의 인터페이스 바인딩이, 예를 들어, WSDL 로 표현될 수 있고, 요청 노드가 그 바인딩과 관련된 규칙 및 프로토콜을 지원할 수 있는 한, 해당 노드의 인터페이스를 호출할 수도 있다. 예를 들어, 노드가 웹 서비스 인터페이스를 지원하는 경우, 요청 노드는 SOAP, HTTP, WS-Security 등을 지원하도록 요구될 수도 있다.
임의의 서비스 인터페이스는 권리 관리의 양태를 직접 제공하는 표준화된 방식으로 제어 (예를 들어, 권리에 대한 관리) 될 수 있다. 노드간의 상호작용은 통제된 오퍼레이션으로 간주될 수 있다.
사실상, 임의의 타입의 디바이스 (물리적 또는 가상적) 는 잠재적으로 NEMO-가능으로 간주될 수 있고, NEMO 프레임워크의 핵심 양태를 구현할 수 있다. 디바이스 타입은, 예를 들어, 소비자 가전 장비, 네트워크화된 서비스, 소프트웨어 클라이언트를 포함한다. 바람직한 일 실시예의 경우, NEMO-가능 디바이스 (노드) 는 일반적으로 다음과 같은 (상세히 후술될) 논리적 모듈의 일부 또는 전부를 포함한다:
원시 ( native ) 서비스 API - 디바이스가 구현하는 한 개 이상의 서비스 세트. NEMO 노드가 NEMO 프레임워크에서 임의의 서비스를 직간접적으로 공개해야 한다는 요구사항은 없다.
원시 서비스 구현 - 원시 서비스 API에 대한 대응하는 구현의 세트.
서비스 적응층 ( Service Adaptation Layer ) - 엔티티의 원시 서비스의 공개된 서브세트에 대한 액세스가, 예를 들어, WSDL 에 설명된 하나 이상의 검색가능 바인딩을 이용해 이루어지는 논리층.
프레임워크 지원 라이브러리 - 서비스 인터페이스, 메시지 프로세싱, 서비스 편성 등의 호출에 대한 지원을 포함하는, NEMO 프레임워크로 동작하는 지원 기능을 제공하는 컴포넌트.
1. 4. 용어 정의
일 실시예의 경우, 기본적 WSDL 프로필이 상호작용 패턴과 기반구조 기능을 지원하기 위한 데이터 타입 및 메시지의 최소한의 "핵심" 세트를 정의한다. 사용자는 애드-혹 방식으로 직접, 또는 일부 형식의 표준화 프로세스를 통해, 이러한 핵심의 최상부 상에 구축된 여타 프로필을 정의하며, 새로운 데이터 및 서비스 타입을 추가하고 기존의 것들을 확장할 수 있다. 일 실시예의 경우, 이러한 핵심 프로필은 다음과 같은 중요한 기본 데이터 타입의 일부 또는 전부에 대한 정의를 포함한다.
노드 - 시스템 프레임워크에서의 참가자. 일 노드는 서비스 소비자 및/또는 서비스 제공자의 역할을 포함하는, 다수의 역할을 할 수도 있다. 노드는 소비자 가전 디바이스, 미디어 플레이어와 같은 소프트웨어 에이전트, 콘텐츠 탐색 엔진과 같은 가상 서비스 제공자, DRM 라이센스 제공자, 또는 콘텐츠 로커를 포함하는 다양한 형식으로 구현될 수도 있다.
디바이스 - 가상적 또는 물리적 디바이스의 표현을 말한다.
사용자 - 클라이언트 사용자의 표현을 말한다.
요청 - 타깃 노드의 세트로의 서비스에 대한 요청을 말한다.
요청 입력 - 요청에 대한 입력을 말한다.
응답 - 요청과 관련된 응답을 말한다.
요청 결과 - 어떤 요청과 관련된 응답 결과를 말한다.
서비스 - 제공자 노드에 의해 공개되거나 제공되는 일련의 잘 정의된 기능들의 표현을 말한다. 예를 들어, 이동전화 (예를 들어, 음성 인식 서비스) 와 같은 디바이스 안에서 제공되는 저-레벨의 기능일 수도 있고, 월드와이드웹 (예를 들어, 쇼핑 서비스) 을 통해 제공되는 다면적인 기능일 수도 있다. 서비스는 클라이언트 퍼스널라이제이션 (personalization) 및 라이센스 획득과 같은 DRM 관련 서비스를 포함하는 광범위하게 다양한 애플리케이션을 커버링할 수 있다.
서비스 제공자 - 서비스를 제공하는 엔티티 (예를 들어, 노드나 디바이스). 잠재적인 서비스 제공자들은, 이동전화, PDA, 휴대용 미디어 플레이어 및 홈 게이트웨이와 같은 소비자 전자 제품뿐만 아니라 네트워크 사업자 (예를 들어, 유선전파중계국), 이동통신사업자, 웹기반 소매업체 및 콘텐츠 라이센스 제공업자를 포함한다.
서비스 인터페이스 - 하나 이상의 서비스와 상호작용하는 잘 정의된 방식.
서비스 바인딩 - 서비스 인터페이스를 호출하기 위해 사용되는 규칙 및 프로토콜을 포함하는, 서비스와 통신하기 위한 특정 방식을 말한다. WS-I 표준 XML 프로토콜, WSDL 정의에 기반한 RPC, 또는 DLL 로부터 함수 호출과 같은 잘 정의된 다양한 방식으로 표현된다.
서비스 액세스 포인트 ( SAP ) - 노드가 서비스 제공 노드의 타깃 세트로의 서비스 호출 요청을 수행하고 응답을 받도록 하기 위해 필요한 기능을 말한다.
워크플로 콜레이터 ( WFC ) - 노드가 서비스 호출과 관련된 요청과 응답의 컬렉션을 관리 및 프로세싱할 수 있도록 공통된 인터페이스를 제공하는 서비스 편성 메커니즘. 이러한 인터페이스는 서비스와 관련된 메시지를 관리함으로써 서비스 조정을 위한 기본 구성 블록을 제공한다.
디지털 저작권 관리 (DRM) 와 같은 특정 애플리케이션의 콘텍스트에서, 전형적인 프로필은 시스템에서 엔티티를 표현하고, 콘텐츠를 보호하고 사용 규칙을 콘텐츠와 관련시키며, 요청시 액세스가 허여될지의 여부를 결정하는 아래와 같은 일련의 콘텐츠 보호 및 관리 오브젝트를 위한 다양한 DRM 관련 서비스 (아래에 기술) 를 포함수도 있다.
콘텐츠 레퍼런스 ( Content Reference ) - 하나의 콘텐츠 항목에 대한 레퍼런스나 포인터의 표현이다. 그러한 레퍼런스는 일반적으로 콘텐츠 포맷, 위치 등을 설명하는 다른 표준화된 방식에 영향을 줄 것이다.
DRM 레퍼런스 - 디지털저작권 관리 포맷의 설명에 대한 레퍼런스나 포인터의 표현이다.
링크 - 엔티티들 (예를 들어, 노드) 사이의 링크.
콘텐츠 - 미디어 또는 다른 콘텐츠를 나타낸다.
콘텐츠 키 - 콘텐츠 암호화를 위해 사용된 암호화 키를 말한다.
제어 - 콘텐츠와의 상호작용을 통제하는 이용 규칙 또는 기타 규칙을 말한다.
제어기 - 제어와 콘텐츠 키 (ContentKey) 오브젝트들 사이의 관련성을 나타낸다.
프로젝터 ( projector ) - 콘텐츠와 콘텐츠 키 오브젝트 사이의 관련성을 나타낸다.
일 실시예에서 핵심 프로필은 다음의 기본적인 서비스의 일부 또는 전부에 대한 정의를 포함한다:
인가 - 일부 참가자에게 서비스에 액세스할 권한을 주기 위한 요청이나 응답.
통제 - 소프트웨어 업그레이드를 다운로딩하고 설치하는 능력처럼 일부 아이템 (예를 들어, 음악 파일, 문서 또는 서비스 오퍼레이션) 에 대한 권한있거나 지배적 영향력을 행사하는 프로세스. 통제는 보통 신뢰 관리, 정책 관리 및 콘텐츠 보호와 같은 서비스 제공 기능과 상호작용한다.
*메시지 라우팅 (Message Routing) - 서비스 제공 노드가 메시지를 전송하거나 메시지를 수집 및 어셈블리하게 하는 능력을 포함하는 메시지 라우팅 기능을 제공하기 위한 요청이나 응답.
노드 등록 ( Node Registration ) - 노드에 대한 등록 오퍼레이션을 실행하여, 그에 의해, 노드를 통해 검색되기 위한 요청이나 응답.
노드 디스커버리 ( 쿼리 ) - 노드의 디스커버리와 관련된 요청이나 응답.
통지 - 타깃 통지 메시지를 노드들의 소정의 세트로 전송 또는 전달하기 위한 요청이나 응답.
보안 증명서 교환 ( Security Credential Exchange ) - 노드가, 키 쌍이나 인증서 등과 같은 보안 관련 정보를 교환하도록 허용하는 것과 관련된 요청이나 응답.
서비스 디스커버리 ( 쿼리 ) - 하나 이상의 노드의 일부 세트에 의해 제공된 서비스의 디스커버리와 관련된 요청이나 응답.
서비스 편성 ( Service Orchestration ) - 서비스 제공자에 의해 특정된 규칙을 지키는 관리가능하고 더 굵직한 (coarser-grained) 서비스나 재사용이 가능한 컴포넌트 또는 완전한 애플리케이션으로 서비스를 어셈블리 및 조정. 예들은, 제공자 아이덴티티, 서비스 타입, 서비스가 액세스되는 방법, 서비스가 구성되는 순서 등에 기초하는 규칙을 포함한다.
신뢰 관리 - 노드간 상호작용을 위해 인가 받고 신뢰 받는 콘텍스트를 생성하기 위한 협약 및 프로토콜의 공통 세트를 제공한다. 일부 실시예에서, NEMO 신뢰 관리는, 웹 서비스 도메인에서 WS-Security, WS-Policy 를 포함하는 기존의 보안 규격 및 메커니즘에 영향을 주고 및/또는 확장할 수도 있다.
업그레이드 - 기능 업그레이드를 수신하는 것과 관련된 요청이나 응답을 말한다. 일 실시예에서 이 서비스는 순수하게 추상적이며 다른 프로필들이 구체적인 표현을 제공한다.
1. 5. 노드 간의 예시적인 상호작용
아래에서 좀 더 상세하게 논의되겠지만, 두 시스템 노드들, 즉, 서비스 요청자와 서비스 제공자 사이의 기본적인 논리적 상호작용은 보통 다음과 같은 이벤트 시퀀스를 포함한다. 서비스를 요청하는 노드의 관점에서 보면:
서비스 요청 노드가, 특정된 서비스 바인딩을 이용해 필요한 서비스를 제공할 수 있는 임의의 NEMO-가능 노드의 위치를 확인하기 위해 서비스 디스커버리 요청을 행한다. 노드는 검색된 서비스에 관한 정보를 캐싱 (cache) 하는 것을 선택할 수도 있다. 노드 사이의 서비스 디스커버리를 위한 인터페이스/메커니즘은 NEMO 노드가 구현하기로 선택하는 또 다른 서비스에 불과할 수 있다.
일단 후보 서비스 제공 노드가 발견되면, 요청 노드는 특정된 서비스 바인딩에 기초하여 하나 이상의 서비스 제공 노드로 요청을 디스패치하기로 선택할 수도 있다.
일 실시예에서, 서로 안전하게 통신하기를 원하는 두 노드가 WSDL 메시지 교환을 목적으로 신뢰 관계를 확립할 것이다. 예를 들어, 두 노드가 아이덴티티를 결정, 인가를 확인, 안전한 채널을 확립등을 할 때 사용할 수도 있는 일련의 호환가능한 증명서 (예를 들어, X.500 인증서, 디바이스 키 등) 을 협의할 수도 있다. 일부 경우, 이러한 증명서의 협의가 서비스 인터페이스 바인딩 (예를 들어, WS-I XML 프로토콜이 사용될 경우 WS-Security 나 잘 알려진 두 노드 사이의 SSL 요청) 의 묵시적 속성일 수 있다. 또 다른 경우, 증명서의 협의는 명시적으로 별도의 단계일 수 있다. 일 실시예에서, 다른 노드와의 상호작용을 위해 어떤 증명서가 충분할지 여부를 결정하고 소정의 노드를 신뢰할 수 있을지 여부를 결정하는 것은 소정의 노드에게 달려 있다.
요청 노드는 요청된 서비스에 대응하는 적절한 WSDL 요청 메시지(들)를 생성한다.
일단 메시지가 생성되면, 타깃 서비스 제공 노드(들)로 디스패치된다. 요청의 통신 양식은, 예를 들어 동기 또는 비동기 RPC 식이거나 서비스 바인딩에 기초한 메시지-지향식일 수도 있다. 서비스 요청의 디스패치 및 응답의 수신은 디바이스에 의해 직접 또는 NEMO 서비스 프록시를 통해 행해질 수도 있다. 서비스 프록시 (아래에서 설명) 는 메시지를 다른 참가자에게 전송하기 위한 추상화와 인터페이스를 제공하고, 호환가능 메시지 포맷, 전송 메커니즘, 메시지 라우팅 문제 등과 같은 특정 서비스 바인딩 문제를 숨길 수 있다.
요청을 디스패치한 후, 요청 노드는 보통 하나 이상의 응답을 수신할 것이다. 특정 서비스 인터페이스 바인딩 및 요청 노드의 선호도에 따라, 응답(들)은, 예를 들어, RPC식 응답이나 통지 메시지를 포함하는 다양한 방식으로 복귀할 수도 있다. 타깃 노드(들)로 가는 도중에 응답은, 라우팅, 신뢰 협의, 대조 및 상관 기능을 포함한 다수의 관련 서비스를 제공할 수도 있는 다른 중개 노드를 통과할 수도 있다.
요청 노드는 응답(들) 을 검증하여, 서비스 제공 노드와 그 요청 노드 사이에서의 협의된 신뢰 시맨틱 (trust semantics) 을 지키는지 확인한다.
그 후에 메시지 페이로드 타입 및 콘텐츠에 기초하여 적절한 프로세싱이 적용된다.
서비스 제공 노드의 관점에서 보면 이벤트 시퀀스는 보통 다음과 같다:
요청된 서비스가 지원되는지 여부를 결정한다. 일 실시예에서, NEMO 프레임워크는 서비스 엔트리 포인트로서 서비스 인터페이스가 맵핑하는 방법의 양식 및 입도 (granularituy) 를 지정한다. 가장 간단한 경우에서, 서비스 인터페이스는 소정의 서비스와 명확하게 맵핑되며, 서비스에 바인딩하여 호출하는 액트는 서비스에 대한 지원을 구성할 수도 있다. 그러나 일부 실시예에서는 단일 서비스 인터페이스가 다수의 타입의 요청을 처리할 수도 있고, 소정의 서비스 타입은, 노드가 구체적으로 소망하는 기능을 지원한다는 결정이 행해지기 전에 조사될 필요가 있는 부가적인 속성을 포함할 수 있다.
일부 경우, 서비스 제공자가 요청 노드를 신뢰하는지 여부를 결정하고 일련의 호환가능한 증명서를 협의할 필요가 있을 수도 있다. 일 실시예에서, 서비스 제공자의 신뢰 결정에 관계없이, 서비스 인터페이스와 관련된 임의의 정책이 그대로 적용될 것이다.
서비스 제공자가 인가 요청(들) 을 결정하고 인터페이스 액세스 인가를 책임지는 노드(들)로 그 요청을 디스패치하여, 요청 노드가 액세스 권한을 가지고 있는지를 결정한다. 많은 상황에서, 인가 노드와 서비스 제공 노드는 동일한 엔티티일 것이며 인가 요청의 디스패치 및 프로세싱은 C 함수 엔트리 포인트와 같은 가벼운 서비스 인터페이스 바인딩을 통해 호출된 로컬 오퍼레이션일 것이다.
요청 노드가 인가될 경우, 인가 응답을 수신할 시에, 서비스 제공자는 그 요청을 실행할 것이다. 인가되지 않은 경우, 적절한 응답 메시지가 생성될 수도 있다.
응답 메시지는 서비스 인터페이스 바인딩과 요청 노드의 선호도에 기초하여 복귀된다. 요청 노드까지 오는 중에, 메시지는 다른 중개 노드들을 통과하는데 이 중개 노드들은 필수적인 또는 '부가가치' 서비스를 제공할 수도 있다. 예를 들어, 중개 노드는 라우팅, 신뢰 협의 또는 허용가능한 방식으로 요청 노드에 메시지를 전달할 수 있는 통지 프로세싱 노드로의 전달을 제공할 수도 있다. "부가가치" 서비스의 예는, 요청 노드의 관심을 알고 있을 경우 메시지에 쿠폰을 첨부하는 쿠폰 서비스이다.
2. 시스템 아키텍처
DRM 애플리케이션을 구현하고 있는, 도 1 에 도시된 NEMO 시스템 프레임워크의 샘플 실시예를 고려한다.
전술한 바와 같이, NEMO 노드는 서비스 호출 요청을 하고 응답을 수신함으로써 상호작용할 수도 있다. NEMO 프레임워크는, 단일 서비스 제공자와의 단순한 점대점 상호작용에서부터 다수의 서비스 제공자로부터의 조율된 일련의 서비스 집합체까지 다양하고 풍부한 통신 패턴의 구성을 지원한다.
도 1의 콘텍스트에서, NEMO 노드가 서로 상호작용해 집합적으로 하나의 음악 라이센싱 시스템을 구현하는 다양한 서비스를 제공한다. 소비자 컴퓨터 음악 로커 (110) 에 저장된 음악은 웹 음악 판매자 (120) 에 의해 추출되어 최종 사용자의 엔터테인먼트 홈 게이트웨이 (130) 를 통해 가정에 있는 그 최종 사용자에게 제공된다. 소비자 음악 로커 (110) 로부터의 음악은, 그러한 음악이 웹 음악 판매자 (120) 에 그리고 이후에 추가적인 이용과 배포를 위해 다른 곳에 제공되는 조건을 통제하는 규칙들을 포함할 수도 있다. 엔터테인먼트 홈 게이트웨이 (130) 는 그러한 음악 (뿐만 아니라 영상 및 기타 콘텐츠) 이, 예를 들어, 사용자의 가정용 PC나 사용자의 휴대용 재생 디바이스 (예를 들어, 휴대용 음악 플레이어 (150)) 에서 (예를 들어, PC 소프트웨어 비디오 재생 플레이어 (140) 를 통해) 재생될 수 있도록 하는 수단이다. 사용자는, 예를 들어, 휴대용 음악 플레이어 (150) 를 가지고 이동할 수도 있고, (예를 들어, 디지털 저작권 라이센스 서비스 (160) 로의) 무선 인터넷 연결을 통해 추가로 노래를 구입하거나 기존의 노래를 다시 재생하거나 심지어 휴대용 음악 플레이어 (150) 에 소프트웨어 업그레이드 서비스 (170) 를 통해 새로운 기능을 추가하기 위한 라이센스를 획득할 수 있다.
NEMO 노드는 서로간에 그리고 다른 디바이스와 다양하고 상이한 방식으로 상호작용할 수 있다. 도2 a 에 도시된 것과 같은 NEMO 호스트는 적어도 하나의 NEMO 노드를 호스팅하는 일종의 기계 또는 디바이스이다. 호스트는 개인통신망 (210) 내에 또는 인터넷을 통해 액세스 가능한 원격지 (220) 에 상주할 수도 있다. 호스트는, 예를 들어, 서버 (230), 데스크탑 PC (240), 렙탑 (250) 또는 개인휴대정보단말 (260) 일 수 있다.
NEMO 노드는 (서드 파티 (3rd party) 웹 서비스를 제공하는 호스트 (235) 와 같은) 다른 노드로 서비스를 제공할 뿐만 아니라, NEMO-관리 프레임워크 내에서 다른 노드의 서비스를 호출할 수 있는 소프트웨어 에이전트이다. 일부 노드 (270) 는 블루투스와 같은 전용 통신 채널을 통해 다른 호스트에 구속된다. 이러한 호스트 (240과 250) 는 네트워크 접속도 및 충분한 프로세싱 능력을 장비하여, 가상 노드를 다른 참여 NENO 노드에 제공한다.
도 2b 에 도시되어 있듯이, NEMO 노드는 LAN이나 개인통신망 (210) 내에서 완전한 피어일 수 있다. 노드들은 서비스를 공개시키고 호출하는 대칭 능력을 공유하지만, 보통은 각 노드가 동일한 세트의 서비스를 제공하지는 않는다. 노드가 자신이 수행하는 서비스를 광고하고 및/또는 그 서비스에 관해 구체적으로 쿼리될 수도 있다.
도 2c 에서 보듯이, 인터넷 접속이 제공된다면, (예를 들어, 개인통신망 (210) 내의) 로컬 NEMO 노드들은 또한 원격 노드 (220) 의 서비스에 액세스할 수 있다. 로컬 네트워크 구성 및 정책에 따라 로컬 및 원격 노드들 (예를 들어, 인터넷-가능 NEMO 호스트 (280)) 이 NEMO 피어로서 상호운용하는 것이 가능하다.
도 2d 에 도시되어 있듯이, 모든 NEMO 노드들이, 로컬이든 원격지든 다른 호스트와 통신할 수 있는 호스트에 있는 것은 아니다. NEMO 호스트 (280) 는 게이트웨이 서비스를 제공할 수 있고, 이 서비스를 통해 한 노드가, 예를 들어, 구속된 노드 (285) 또는 개인통신망 (210) 노드와 같은 다른 노드의 서비스를 호출할 수 있다.
도 2e 에 도시되어 있듯이, 구속된 디바이스상의 노드 (295) 는 위에서 언급한 것처럼 게이트웨이를 통해 다른 노드의 서비스에 액세스할 수도 있다. 또한, 다른 노드들도 다른 호스트 (290) 상의 프록시 서비스를 통해 노드 (295) 에 액세스할 수 있다. 프록시 서비스는 NEMO 호스트에서 구동하는 가상 노드를 생성한다. 이러한 프록시 노드들이 전체 NEMO 피어일 수도 있다.
도 2f 에 도시되어 있듯이, NEMO 호스트는 NEMO 모드 어댑터를 통해 구속된 디바이스에 대한 전용 지원을 제공할 수도 있다. 호스트/NEMO 디바이스 어댑터 (297) 와 구속된 노드 (298) 사이에 임의의 적절한 프로토콜을 이용하는 비공개 통신 채널 (296) 이 사용된다. 구속된 노드 (298) 는 다른 NEMO 피어 노드를 볼 수도 없고 다른 노드에게 보이지도 않는다.
다음으로, 특정 실시예에서 NEMO-가능 디바이스에 의해 제공될 수 있거나 NEMO 콘텍스트 외부에서 사용될 수 있는 예시적인 디지털 저작권 관리 (DRM) 기능을 고려한다. 전술한 바와 같이, NEMO 시스템 프레임워크의 바람직한 실시예의 주요한 목적은 상업용 네트워크 계층과 소비자-지향 네트워크 계층 모두에 걸친 미디어-관련 서비스 사이의 안전하고 상호운용되는 상호접속의 개발을 지원하는 것이다. 서비스 접속에 덧붙여, 미디어-관련 서비스들 사이의 상호운용성은, 종종, 이러한 서비스를 통해 이용가능한 콘텐츠에 적용되는 사용권의 조정된 관리를 요구할 것이다. 여기서 기술하는 NEMO 서비스와 예시적인 DRM 엔진을 함께 이용하여, NEMO 프레임워크에 기초한 디바이스가 심지어 이기종의 DRM 및 미디어 포맷 기반구조에서도 심리스 (seamless) 렌더링과 이용 경험 인지를 소비자에게 제공하도록 허용하는 상호운용성을 달성한다.
DRM 애플리케이션의 콘텍스트에서, 도 3 에 도시되어 있듯이 NEMO-가능 DRM 디바이스 네트워크는 다른 DRM 디바이스에 대한 콘텐츠를 패키징하는 콘텐츠 제공자/서버 (310) 뿐만 아니라, 보호 콘텐츠를 재생하고 휴대용 디바이스 (340) 로의 전송을 위해 콘텐츠를 패키징하는 소비자 PC 플레이어 (330) 및 소비자 PC 패키저 플레이어 (320) 를 포함할 수도 있다.
각 DRM 디바이스 내에서, DRM 엔진은 특정 DRM 기능 (예를 들어, 라이센스 조건 이행, 호스트 애플리케이션으로의 키 전송 등) 을 실행하고, 암호화, 해독 및 파일 관리와 같이 호스트에 의해 가장 효과적으로 제공될 수 있는 서비스를 위해 호스트 애플리케이션에 의존한다.
이하 상세하게 설명할 바와 같이, 일 실시예에서 DRM 엔진은 보호 콘텐츠에 대한 특정 액션이 허용가능한지 결정하기 위해 설계된 가상 머신 (VM) 을 포함한다. 이 제어 VM은 명령의 최소 세트를 갖는 간단한 스택-기반 머신으로 구현될 수 있다. 일 실시예에서, 논리적 계산 및 산술적 계산을 실행할 수 있을 뿐만 아니라, 호스트 환경으로부터의 상태 정보를 쿼리하여 시스템 시간, 카운터 상태 등과 같은 파라미터들을 점검할 수 있다.
일 실시예에서, DRM 엔진은 그래프기반 알고리즘을 활용해서 DRM 가치 체인 (value chain) 의 엔티티들 사이의 관계를 확인한다. 도 4 는 그러한 그래프의 개념적 실시예를 도시하고 있다. 그래프는 링크로 접속된 노드나 버텍스 (vertex) 의 집합을 포함한다. 시스템의 각 엔티티는 버텍스 오브젝트로 표현될 수 있다. 링크 오브젝트에 의해 레퍼런싱되거나 암호학적으로 타깃된 정보의 수신자일 필요가 있는 엔티티만이 대응하는 버텍스 오브젝트를 가질 필요가 있다. 일 실시예에서 버텍스는 보통 사용자, 디바이스 또는 그룹을 나타낸다. 또한, 버텍스 오브젝트는 그 버텍스와 관련된 엔티티의 특성을 나타내는 관련 속성을 가진다.
예를 들어, 도 4 는 두 명의 사용자 (Xan과 Knox), 두개의 디바이스 (Mac와 휴대용 디바이스), 및 그룹을 나타내는 여러 엔티티 (Carey 제품군의 구성원들, 공용 라이브러리의 구성원들, 특정 음악 서비스 가입자들, RIAA-승인 디바이스 및 특정 회사에서 제조된 디바이스들) 를 도시하고 있다. 이들의 각각은 그와 관련된 버텍스 오브젝트를 가지고 있다.
링크의 시맨틱은 애플리케이션-특정 방식에서 차이가 있을 수도 있다. 예를 들어, Mac 버텍스로부터 Knox 버텍스로 향하는 에지 (edge) 는 Knox가 Mac의 소유자임을 의미할 수도 있다. Knox로부터 공용 라이브러리까지의 에지는 Knox가 공용 라이브러리의 한 구성원임을 나타낸다. 일 실시예에서 DRM 엔진은 이러한 시맨틱을 부과하거나 해석하지 않고, 즉, 그래프 내에서 경로가 존재하는지 여부만을 간단히 확인한다. 이러한 버텍스 그래프를 "인가 (authorization)" 그래프로 간주할 수도 있는데, 두 버텍스 사이에 경로나 관계 (직접적이든 간접적이든) 가 존재한다는 것은 한 버텍스가 다른 버텍스에 액세스하기 위한 인가로 해석할 수도 있기 때문이다.
예를 들어, Knox는 Carey 제품군과 링크되어 있고 그 Carey 제품군은 음악 서비스에 링크되어 있기 때문에, Knox와 음악 서비스 사이에 경로가 존재한다. 다른 버텍스로부터 음악 서비스로의 경로가 존재할 경우, 음악 서비스 버텍스는 그 다른 버텍스로부터 도달할 수 있는 것으로 간주된다. 이것은, 액세스를 요청하는 애플리케이션 (예를 들어, DRM 클라이언트 호스트 애플리케이션) 이 실행되고 있는 휴대용 디바이스로부터 음악 서비스에 도달할 수 있는 조건에 기초해 보호 콘텐츠에 액세스하도록 허용하게 하는 제어를 기입하게 한다.
예를 들어, 콘텐츠 소유자가 제어 VM 에 의해 해석되는 제어 프로그램을 생성할 수도 있는데, 이 제어 VM은 디바이스가 공용 라이브러리의 구성원의 소유이고 RIAA-인증된 경우에 음악의 특정 부분이 재생되도록 허용한다. 디바이스에서 구동하는 제어 VM 이 제어 프로그램을 평가할 때, DRM 엔진은 휴대용 디바이스와 공용 라이브러리 사이에 그리고 휴대용 디바이스와 RIAA-인증 사이에 링크가 존재하는지 결정한다. 그래프의 에지와 버텍스들은 정적이고 디바이스내에 구축되거나, 동적이고 호스트 애플리케이션과 통신하는 서비스를 통해 검색될 수도 있다.
버텍스와 링크에 시맨틱을 부과하지 않음으로써, DRM 엔진은 상당한 유연성을 허용할 수 있다. 시스템은, 전통적인 위임-기반 (delegation-based) 정책 시스템에서부터 인가 받은 도메인과 개인통신망까지 많은 사용 모델에 적응할 수 있다.
일 실시예에서, 또한, DRM 클라이언트는 콘텐츠 보호키 유도를 위해 인가 그래프를 다시 사용할 수 있다. 시스템 설계자는 링크의 존재가 특정 암호화 정보의 공유를 또한 나타내게 하도록 선택할 수 있다. 그러한 경우, 명시적으로 암호의 타깃을 소비 디바이스로 바꾸지 않고서도 허가 그래프를 이용해 콘텐츠 키를 유도할 수 있다.
3. 노드 아키텍처
3. 1. 개요
소비자 가전 제품, 네트워크화된 서비스 또는 소프트웨어 클라이언트를 포함한 임의의 타입의 디바이스 (물리적 또는 가상적) 는 잠재적으로 NEMO-가능할 수 있으며, 이는, 디바이스의 기능을 NEMO 시스템 참여를 가능하게 하는 방식으로 확장시킬 수도 있다는 것을 의미한다. 일 실시예에서, NEMO-가능 디바이스 (노드) 는 개념적으로 5a 에 도시된 것처럼 특정 표준 모듈로 이루어져 있다.
원시 서비스 API (510) 는 디바이스가 구현하는 하나 이상의 서비스의 논리적 세트를 나타낸다. NEMO 노드가 어떤 서비스를 직접 또는 간접적으로 공개시켜야 한다는 요건은 없다. 원시 서비스 구현물 (520) 은 원시 서비스 API 를 위한, 대응하는 구현의 세트를 나타낸다.
*서비스 액세스 포인트 (530) 는 공개된 서비스 인터페이스 호출을 지원한다. 이것은 NEMO 노드가 서비스를 제공하는 NEMO 노드의 타깃된 세트에 대한 서비스 호출 요청을 행하고 응답의 세트를 수신하게 하기 위해 필요한 기능이다. NEMO-가능 노드는 다양한 디스커버리, 이름 레졸루션 및 전송 프로토콜을 이용하는데 이를 위해서 유연성 있고 확장성 있는 통신 API 가 필요하다. 서비스 액세스 포인트는 특정 실행 환경과 애플리케이션 프레임워크 양식에 따라 다양한 방식으로 실현될 수 있다. 하나의 일반적 인터페이스 모델은 일부 형태로 XML 메시지를 수신하고 XML 메시지를 반송할 수 있는 인터페이스일 것이다. 더 많은 원시 인터페이스를 가진 다른 모델들이, 또한, 지원될 수 있다.
NEMO 서비스 적응층 (540) 은 선택적인 층을 나타내며, 이 층을 통해 하나 이상의 검색가능한 바인딩을 이용해서 엔티티의 원시 서비스들 중 공개된 서브세트에 액세스한다. 이 층은 원시 서비스 API 이상의 추상화 레벨을 제공함으로써 서비스 제공자가 더 쉽게 다수의 타입의 서비스 인터페이스 바인딩을 지원할 수 있도록 한다. 서비스 적응층이 없는 상황에서, 필요한 통신 프로토콜을 지원하면, 서비스 액세스 포인트 (530) 를 통해 직접 서비스와 상호작용하는 것이 여전히 가능할 수도 있다.
서비스 적응층 (540) 은 서비스 제공자가 서비스를 공개시키고, 요청 및 응답을 프로세싱하여 NEMO 프레임워크에서의 서비스를 편성하기 위한 공통적 방식을 제공한다. 이것은 서비스를 발행하는 논리적 포인트이며, 다른 특정 서비스 인터페이스 바인딩을 구현하기 위한 토대를 제공한다.
서비스 제공자의 원시 서비스를 공개시키는 공통적 방식을 다른 NEMO-가능 노드에 제공하는 것 이외에도, 서비스 적응층 (540) 은 5b 에 도시된 것처럼 부가적인 서비스 인터페이스 바인딩 (560) 을 지원하기 위해 컴포넌트들을 계층화하기 위한 자연스러운 공간을 제공한다. 부가적인 서비스 인터페이스 바인딩을 지원함으로써, 서비스 제공자는 호환이 가능한 바인딩을 협의해서 서비스 액세스 포인트에 의해 또는 다른 원시 API 를 통해 사용할 수 있는 가능성을 증가시킨다.
도 5a 를 다시 참조해 보면, 워크플로 콜레이터 (550) 가 서비스 메시지의 관리 및 서비스 편성을 지원한다. 노드가 요청 및 응답 메시지 컬렉션을 관리하고 프로세싱하게 하는 공통 인터페이스를 제공한다. 차례로, 이 인터페이스는 그러한 서비스와 관련된 메시지의 관리를 통해 서비스를 편성하기 위한 기본적인 구축 블록을 제공한다. 이 인터페이스는 보통 메시지 라우팅 기능뿐만 아니라 메시지의 중간 규잉 (queuing) 및 대조 기능을 지원하는 노드에 의해 구현된다.
일부 실시예에서, NEMO 프레임워크는 엔티티의 네트워크 참여를 촉진하는 선택적인 지원 서비스들의 컬렉션을 포함한다. 그러한 서비스는 다양한 타입의 기능뿐만 아니라 서비스를 요청하는 엔티티의 타입 (예를 들어, 서비스 제공자가 필요로 하는 것과는 대조적인 서비스 지원 클라이언트 애플리케이션) 에 따라 분류될 수 있다. 통상적인 지원 서비스는 다음을 포함한다:
WSDL 포맷팅 및 조작 루틴 - WSDL 기반 서비스 메시지의 생성과 조작을 위한 기능을 제공한다.
서비스 캐시 - 발견된 노드들과 그 노드들이 지원하는 서비스 사이의 맵핑의 컬렉션을 관리할 수 있도록 공통 인터페이스를 제공한다.
통지 프로세서 인터페이스 - 통지 프로세싱을 지원하는 NEMO 노드를 잘 정의된 통지 프로세싱 엔진으로 확장시키기 위한 공통 서비스 제공자 인터페이스를 제공한다.
기타 지원 기능 - 메시지 ID, 타임스탬프 (timestamp) 등을 생성하기 위한 루틴이 포함된다.
3.2. 기본적인 노드 상호작용
NEMO 노드의 개별 아키텍처 엘리먼트를 자세히 살펴보기 전에, 그러한 노드가 다른 노드와 상호작용 및 통신하는 방식을 이해하는 것이 도움이 될 것이다. 동기 및 비동기 RPC식 통신으로부터 단방향 인터페이스 호출 및 클라이언트 콜백까지 다양한 통신 양식이 지원된다.
비동기식 RPC 전달 양식 - 이 모델은 요청을 실행하는 데에 상당한 시간이 걸릴 것으로 예상되고 클라이언트가 오래 기다리길 원치 않을 경우에 특히 적합하다. 클라이언트는 요청을 제출하면서 어떤 서비스 제공 노드에 의해서건 비동기식으로 처리될 것으로 기대한다. 이 경우, 서비스 제공 엔드포인트는 응답할 때 이 모델을 지원하지 않는다는 것을 알리거나, 서비스 제공 노드가 이 모델을 지원하는 경우, 이후의 요청에서 클라이언트의 요청에 대한 응답을 가지고 있는지 결정하기 위해 소정의 서비스 제공 노드로 제출될 수 있는 티켓을 반송할 응답을 반환할 것이다.
*일 실시예에서, 이 모델을 지원하는 서비스 제공 엔드포인트는 내부 정책에 기초하여 보류중인 클라이언트 요청에 대한 응답을 캐싱할 의무가 있다. 클라이언트가 그러한 요청과 관련된 티켓을 회수하려고 하고 응답이 이용가능하지 않거나 서비스 제공 노드가 응답을 폐기한 경우, 적절한 오류 응답이 반환된다. 이 실시예에서 응답을 위한 티켓을 회수하려고 할 시에 후속적인 요청을 할 때를 결정하는 것은 클라이언트의 몫이다.
동기식 RPC 전달 양식 - 클라이언트가 요청을 제출하고 하나 이상의 응답이 반환되기를 기다린다. NEMO-가능 서비스 제공 엔드포인트가 이 모델을 지원하지 않는다는 응답을 보낼 수도 있다.
메시지 기반 전달 양식 - 클라이언트가 하나 이상의 통지 처리 서비스 인터페이스와 관련된 메시지 통지를 통해 어떤 응답이라도 수신하길 원한다는 것을 나타내는 요청을 제출한다. NEMO-가능 서비스 제공 엔드포인트는 이 모델을 지원하지 않는다는 응답을 보낼 수도 있다.
클라이언트 애플리케이션의 관점에서 볼 때, 위의 상호작용 패턴 중 어떤 것도 반드시 응답을 블로킹하고 기다리거나 명시적으로 폴링 (polling) 해야 하는 아키텍처를 필요로 하지 않는다. 스레딩 (threading) 이나 다른 플랫폼-특정 메커니즘을 이용해서, 위의 전달 양식 메커니즘으로 블로킹 및 넌블로킹 시맨틱 모두를 모델링할 수 있다. 또, 위의 양식 중 어떤 것도 소정의 통신 채널의 지연과 관련된 문제를 직접적으로 해결하도록 의도되는 것은 아니고, 즉, 단지, 요청의 실제 실행과 관련된 잠재적 지연만을 해결한다. 통신 채널 지연과 관련된 이러한 문제를 처리하기 위한 메커니즘은, 서비스 액세스 포인트와 같은 컴포넌트의 특정 구현이나 클라이언트의 구현 내에서 직접 해결되어야 한다.
3.3. 서비스 액세스 포인트
전술한 바와 같이, 서비스 액세스 포인트 (SAP) 는 서비스 호출을 위해 재사용이 가능한 공통 API 로서 사용될 수 있다. 즉, 전송 채널의 협의와 이용이 가능하다. 예를 들어, 일부 전송 채널은 TCP/IP 를 통한 SSL 세션 셋업을 요구할 수도 있지만, 일부 채널은 비교적 신뢰성 없는 UDP/IP 를 통한 통신만 지원할 수도 있으며, 다른 채널들은 IP 기반 전송이 아예 불가능하다.
SAP 는 메시지 라우팅을 위한 초기 NEMO 노드 세트의 디스커버리를 캡슐화 할 수 있다. 예를 들어, 케이블 셋탑 박스는 네트워크에 대한 전용 접속을 갖추고 모든 메시지가 특정 루트와 중간 단계를 통해 흐르도록 지정한다. 홈 네트워크의 휴대용 미디어 플레이어는 UPnP 디스커버리를 이용해 직접 엑세스가 가능한 다수의 노드들을 발견할 수도 있다. 클라이언트는, XML 메시지를 교환함으로써 다른 NEMO 노드와 직접 대화하는 것이 불가능하거나 대화하지 않기로 선택할 수도 있다. 이 경우, 원시 인터페이스가 지원되는 것은 무엇이든 공개시키고 사용하는 SAP 버전을 사용할 수 있다.
바람직한 실시예에서, SAP 패턴은 다음의 두 가지 공통 통신 모델을 지원한다 (하지만, 다른 통신 모델뿐만 아니라 두 모델의 조합이 지원된다): (i) (위에서 설명된) 메시지 기반 모델-SAP가 XML 요청 메시지를 형성하고 인터페이스 바인딩을 통해 서비스 제공자와 직접 NEMO 메시지를 교환한다; 또는 (ii) 원시 모델 - SAP 가 일부 원시 통신 프로토콜을 통해 서비스 제공자와 상호작용한다. SAP 는 프레임워크 내의 어딘가에서 정의된 XML 메시지를 내부적으로 번역한다.
두 NEMO 피어 노드 사이의 간단한 상호작용이 도 6a 에 도시되어 있다. 클라이언트 노드 (610) 는 NEMO 서비스 액세스 포인트 (SAP) (620) 를 이용해서 서비스-제공 노드 (660) 와 상호작용한다. 이 예에서는 서비스 공개 및 전송 모두에 웹 서비스 프로토콜과 표준이 사용되고 있다. 서비스-제공 노드 (660) 는 웹 서비스 층 (670) (예를 들어, WSDL 및 SOAP-기반 메시징 이용) 을 이용해서 노드 (610) 와 같은 클라이언트에게 그 노드의 서비스를 공개시킨다. 클라이언트 노드 (610) 의 웹 서비스 층 (630) 은 (SAP 인터페이스 (620) 로부터의 및 그 인터페이스에 SOAP 메시지를 맵핑시키는) 맵핑 층 (640) 및 (예를 들어, SOAP 헤더내에서 반송된 증명서를 이용해서 WS-보안에 영향을 줄 수 있는) 신뢰 관리 프로세싱 층 (650) 으로부터의 도움을 받아 SOAP 메시지를 생성하고 해석한다.
NEMO 노드 사이의 상호작용을 보여주는 또 다른 예가 도 6b 에 도시되어 있다. 서비스-제공 노드 (682) 가 SAP (686) 를 이용해서 클라이언트 노드 (684) 와 상호작용한다. 이 예에서 서비스-제공 노드 (682) 는 클라이언트 (684) 와는 상이하지만 상호운용이 가능한 신뢰 관리 층을 포함하고 있다. 특히, 서비스-제공 노드 (682) 는 신뢰 엔진 (688) 과 인가 엔진 (690) 모두를 포함하고 있다. 이 예에서, 신뢰 엔진 (688) 은 SOAP 메시지의 암호화 및 해독, 디지털 인증서 검증, 및 기타 기본적인 암호화 오퍼레이션을 일반적으로 책임질 수도 있지만, 인가 엔진 (690) 은 더 높은 레벨의 정책 결정을 책임진다. 도 6b 에 보이는 예에서 클라이언트 노드 (684) 는 신뢰 엔진 (692) 을 포함하고 있지만 인가 엔진은 포함하고 있지 않다. 따라서, 이러한 예에서, 클라이언트 노드 (684) 는 기본적인 암호화 오퍼레이션을 실행하고 비교적 간단한 정책 (예를 들어, 메시지 인증, 기밀성 등의 레벨과 관련된 정책) 을 이행할 수 있을 수도 있지만, 서비스 제공 노드 (682) 에 의해 제공되는 서비스 및/또는 콘텐츠의 클라이언트의 이용 및 그 콘텐츠와의 상호작용를 통제하는 더 높은 수준의 정책을 평가하고 이행하기 위해 서비스 제공 노드 (682) 에 의존할 수도 있다. 도 6b 는 제한이 아니라 예시의 목적으로 제공되며, 다른 실시예에서는 클라이언트 노드 (684) 역시 인가 엔진을 포함할 수 있다는 것을 인식할 필요가 있는데, 클라이언트가 특정된 정책과 관련된 일련의 의무를 준수해야 할 때가 바로 그런 경우이다. 따라서, 상이한 NEMO 피어들이 각자의 요건에 따라 신뢰 관리 프레임워크의 상이한 부분들을 포함할 수 있는 것으로 볼 수 있다. 도 6b 는 노드 사이의 통신 링크가 전송에 얽매이지 않을 수 있음을 보여준다. 심지어 SOAP 프로세싱 모델의 콘텍스트에서도, 임의의 적절한 데이터 인코딩 및/또는 프로세싱 규칙을 사용할 수 있다. 예를 들어, XML 보안 모델은 상이한 인코딩 방식을 지원하는 다른 보안 모델로 대체될 수 있다.
서비스 액세스 포인트는 클라이언트의 경계 안에서 (공유 라이브러리의 형태로) 또는 클라이언트의 경계 밖에서와 같이 (상이한 프로세스로 구동하는 에이전트의 형태로) 다양한 형태로 구현될 수도 있다. 정확한 형태의 서비스 액세스 포인트는 특정 타입의 플랫폼이나 클라이언트의 필요에 맞게 맞춤식으로 구현될 수 있다. 클라이언트의 관점에서 볼 때, 서비스 액세스 포인트의 이용은 선택적일 수도 있지만, 일반적으로, 후술될 바와 같이, 상당한 유용성을 제공한다.
서비스 액세스 포인트는 고정된 세트의 서비스 프로토콜 바인딩만을 지원하는 정적 컴포넌트로서 구현될 수도 있거나, 동적으로 새로운 바인딩을 지원할 수 있을 수도 있다.
서비스 액세스 포인트와 관련된 상호작용은 적어도 두 가지 관점, 즉, 요청 참가자가 이용하는 클라이언트측 관점 및 다른 NEMO-가능 엔드포인트 (노드) 와 상호작용하는 서비스측 관점을 특징으로 할 수 있다.
도 7a 에 도시된 일 클라이언트측 실시예에서, 서비스 액세스 포인트 (710) 는 클라이언트 (720) 와 직접 XML 메시지를 교환한다. 클라이언트 (720) 는 요청 메시지 (740) 를 직접 형성해서 서비스 액세스 포인트 (710) 에 제출하며, 그 서비스 액세스 포인트 (710) 는 하나 이상의 응답 메시지 (750) 를 생성하여, 메시지들이 수집, 파싱 (parse) 및 프로세싱되는 그 클라이언트 (720) 에게 전송한다. 또한, 클라이언트 (720) 는 (요청을 할 때) 명시적인 세트(들)의 서비스 바인딩 (730) 을 제출하여, 요청 전송 타깃을 정할 때 사용한다. 이러한 서비스 바인딩은 다양한 방식으로 획득될 수 있다. 예를 들어, 클라이언트 (720) 는 서비스-디스커버리 오퍼레이션을 실행한 다음 어느 서비스 바인딩이 적용가능한지 선택하거나 이전의 응답으로부터 획득된 정보를 사용할 수 있다.
도 7b 에 도시된 또 다른 클라이언트측 실시예에서, 서비스 액세스 포인트 (760) 는 클라이언트 (780) 의 원시 프로토콜 (770) 을 직접 지원한다. 서비스 액세스 포인트 (760) 는 XML과 원시 프로토콜 (770) 사이에서 내부적으로 메시지를 번역함으로써 클라이언트 (780) 가 NEMO 시스템 내에 참여할 수 있도록 한다. 그러한 지원을 달성하기 위해서, 원시 프로토콜 (770) (또는 원시 프로토콜 (770) 과 실행 환경의 조합) 은 어떤 형태의 임의의 필요한 정보를 서비스 액세스 포인트 (760) 에 제공해야 하며, 그 서비스 액세스 포인트는 적절한 요청을 생성하고 필요에 따라 적절한 타깃 서비스 바인딩을 결정한다.
서비스 측에서는, 클라이언트의 서비스 액세스 포인트와 NEMO-가능 서비스-제공 노드 사이에 다수의 패턴의 상호작용이 지원될 수 있다. 클라이언트측에서처럼, 상호작용 패턴은, 요청의 특성, 기본이 되는 통신 네트워크 및 애플리케이션 및/또는 임의의 타깃이 된 서비스 바인딩과 관련된 전송 프로토콜을 포함하는 다양한 기준에 기초하여 맞춤화될 수 있고 변할 수도 있다.
비교적 간단한 타입의 서비스측 상호작용 패턴이 도 7c 에 도시되어 있으며, 여기서, 서비스 액세스 포인트 (711) 는 원하는 서비스-제공 노드 (712) 와 점대점 방식으로 직접 통신한다.
도 7d 를 보면, 서비스 액세스 포인트 (721) 는 잠재적인 다수의 서비스 제공자 (725) 와의 직접 통신을 개시할 수도 있다 (그리고, 그 서비스 제공자로부터 직접 응답을 수신할 수도 있다). 이러한 타입의 상호작용 패턴은 서비스 액세스 포인트 (721) 에 의한 사용을 위해 클라이언트로부터의 다수의 서비스 바인딩을 중계함으로써 구현될 수도 있거나, 메시지를 중계하기 위해 서비스 액세스 포인트 (721) 가 브로드캐스트 네트워크 또는 멀티캐스트 네트워크를 사용할 수 있다. 요청에 특정된 선호도에 기초하여, 서비스 액세스 포인트 (721) 는 응답을 수집 및 대조하거나 또는 단지 첫번째 허용가능한 응답을 반환하기로 선택할 수도 있다.
도 7e 에서 서비스 액세스 포인트 (731) 는 임의의 타깃 서비스-제공 엔드포인트 (735) 와 직접 통신하지 않는다. 대신에, 요청을 중계하고, 임의의 응답을 수신하여 다시 서비스 액세스 포인트 (731) 로 중계해 주는 중개 노드 (733) 를 통해 라우팅된다.
이러한 상호작용 패턴은, 서비스 액세스 포인트 (731) 가 서비스-제공 엔드포인트 (735) 와 관련된 임의의 서비스 바인딩을 직접 지원할 수 없거나 지원하고 싶지 않지만 게이트웨이로서 기능하고자 하는 중개 노드 (733) 와의 관계를 확립할 수 있다면, 필요하다. 대안적으로, 클라이언트는 임의의 적절한 서비스-제공 노드를 위한 서비스 바인딩을 검색할 수 없거나 달리 결정할 수 없을 수도 있지만, 중개 노드 (733) 가 임의의 적절한 서비스 제공자를 검색하는 시도를 허락하고 싶을 수도 있다. 마지막으로, 중개 노드가 더 견고한 (robust) 수집 및 대조 기능을 지원하고 이러한 기능은 차례로 서비스 액세스 포인트 (731) 와 엔드포인트 노드 (735) 와 같은 서비스 제공자 사이에 더 유연한 통신을 허용하기 때문에, 서비스 액세스 포인트 (731) 는 그 중개 노드를 활용하길 원할 수도 있다.
위의 기본적인 서비스측 상호작용 패턴 외에, 이러한 패턴의 조합이나 새로운 패턴을 서비스 액세스 포인트 내에 구현할 수 있다. 서비스 액세스 포인트는 공통 인터페이스를 제공하도록 의도되지만, 그것의 구현은 소정의 NEMO-가능 엔드포인트에 의해 이용되는 통신 모델의 특성 및 관련 프로토콜과 밀접한 관계가 있다.
실제로 서비스 액세스 포인트를 이용해서, (WSDL 로 표현되는 포맷을 가진) XML 표현과 같은 적절한 표현으로 직렬화된 오브젝트, 또는 XML-코딩된 오브젝트를 적절한 포맷으로 엔벨로핑하는 것과 같은 I/O 관련 데이터의 마샬링 (marshalling) 과 언마샬링 (un-marshalling) 을 처리하기 위한 로직을 캡슐화할 수 있다.
바람직한 실시예에서, 또한, SAP 는 SOAP 엔벨로핑을 이용하는 HTTP 를 통한 서비스 호출과 같이 하나 이상의 지원 애플리케이션, 세션 및/또는 전송 프로토콜을 통한 통신 로직을 캡슐화한다.
마지막으로, 일부 실시예에서 SAP 는 XML-서명 및 XML-암호화와 같은 표준을 통해 SSL/TLS 세션 확립 및/또는 데이터 서명/검증 지원과 같이, 메시지 무결성 및 기밀성을 제공하기 위한 로직을 캡슐화할 수도 있다. 서비스 인터페이스의 특정 어드레스가 알려져 있지 않거나 특정되어 있지 않을 때 (예를 들어, 일부 탐색 기준에 기초하여 다수의 노드에 걸쳐 서비스를 호출할 때), SAP 는, 서비스를 발견 또는 해석할 수 있는 디폴트/초기 NEMO 노드 세트에 대한 초기 접속을 확립하는 로직을 캡슐화한다.
다음은 SAP 실시예에 의해 익스포트된 높은 레벨의 API 설명의 비제한적 실시예이다.
ServiceAccessPoint :: Create( Environment []) → ServiceAccessPoint - 이것은 싱글톤 인터페이스로 SAP의 초기화된 인스턴스를 반환한다. SAP 는 환경 파라미터의 선택적인 세트에 기초하여 초기화될 수 있다.
ServiceAccessPoint :: InvokeService ( Service Request Message , Boolean ) → Service Response Message - 동기식 서비스 호출 API가 지원되어, (WSDL을 이용하는) 클라이언트가 XML 서비스 요청 메시지를 형성하고 응답으로 XML 메시지를 수신한다. 또한 API 는, 클라이언트가 응답을 기다려야 하는지 여부를 알려주는 불린(Boolean) 플래그를 수용한다. 보통 이 플래그는, 응답과 관련된 메시지가 없거나 그 응답이 (통지를 통해서와 같이) 다른 채널을 통해 비동기식으로 반환되는 메시지의 경우를 제외하고는 참일 것이다. 또한, 결과 메시지는 일부 결과 오류 조건을 반송할 수도 있다.
ServiceAccesPoint ::ApplyIntegrityProtection( Boolean , Desc[]) → Boolean - 이 API 는 호출자가 무결성 보호를 적용할 것인지 및 메시지의 어느 엘리먼트에 적용할 것인지 특정할 수 있도록 허용한다.
ServiceAccessPoint ::ApplyConfidentiality( Boolean , Desc []) → Boolean - 이 API는 호출자가 기밀성을 적용할 것인지 및 메시지의 어느 오브젝트에 적용할 것인지 특정할 수 있도록 허용한다.
ServiceAccessPoint::SetKeyCallbacks( SigningKeyCallback, SignatureVerificationKeyCallback,
EncryptionKeyCallback,
DecryptionKeyCallback) →
Boolean
이전의 API들에서 언급했듯이, 메시지를 전송하거나 수신할 때 무결성 보호나 기밀성을 요구하는 오브젝트를 포함하고 있을 수도 있다. 이 API는 클라이언트가 자신과 SAP 사이에 임의의 필요한 후크 (hook) 를 설정하게 하여, SAP가 특정 타입의 신뢰 관리 오퍼레이션과 관련된 키를 획득하게 한다. 일 실시예에서 인터페이스는 디지털 서명과 검증을 통한 무결성 보호 및 암호화와 해독을 통한 기밀성을 지원하는 콜백에 기초한다. 일 실시예에서 각각의 콜백은 다음과 같은 형태를 취한다:
KeyCallback(KeyDesc) → Key[]
여기서 KeyDesc 는 요구되는 키(들)를 설명하는 선택적인 오브젝트이며 적절한 키의 목록이 반환된다. 서명은 InvokeService(...) API 를 이용할 때 응답 서비스 메시지 수신 과정의 일부로서 검증된다. 메시지 엘리먼트가 검증에 실패하면, 이러한 상태와 검증에 실패한 엘리먼트를 나타내는 InvokeService(...) 로부터 XML 메시지가 반환된다.
*3.4. 서비스 적응층
위에서 언급했듯이, 서비스 적응층은 서비스 제공자가 그의 서비스를 공개시키고 서비스에 대한 요청을 프로세싱하고 응답을 생성하며 NEMO 프레임워크에서 서비스를 편성하기 위한 공통된 방식을 제공한다. 또한, 그 서비스 적응층은 다른 특정 서비스 인터페이스 바인딩이 구현될 수 있는 토대를 제공한다. 일 실시예에서 시스템 내의 서비스 인터페이스를 설명하기 위해 WSDL 이 사용된다.
그러한 서비스 설명은, 특정 인터페이스에서 서비스를 바인딩하는 방법을 정의하는 것에 덧붙여, 서비스에 대한 엑세스 인가를 책임지게 될 하나 이상의 인가 서비스 제공자의 목록, 서비스의 목적과 이용에 대한 시맨틱 설명 포인터, 및 하나 이상의 다른 서비스의 조율된 실행으로부터 초래하는 복합 서비스를 위해 필요한 편성에 대한 설명을 포함하고 있다.
서비스가 공개되는 논리 포인트 역할을 하는 것 외에, 서비스 적응층은, 또한, NEMO 데이터 타입과 소정의 참가자에 의해 지원되는 플랫폼을 위해 NEMO 서비스 프로필에 특정된 오브젝트의 구체적인 표현을 캡슐화하는 것이 바람직하다. 또한, 서비스-관련 메시지를 적절한 원시 서비스 구현으로 맵핑하기 위한 메커니즘을 포함한다.
일 실시예에서, NEMO 프레임워크는 소정의 플랫폼이나 참가자를 위한 서비스 적응층이 실현되는 방법을 강제로 지정하지 않는다. 서비스-제공 노드가 그의 원시 서비스 프로토콜의 번역을 요구하지 않는, 원시 프로토콜을 통해서 통신할 수 있는 클라이언트 노드에게만 그의 서비스를 공개시키는 상황에서, 서비스-제공 노드는 서비스 적응층을 포함할 필요가 없다.
다른 경우라면, 서비스 적응층은 보통 도 8 에 도시된 것처럼 다음과 같은 엘리먼트들을 포함한다:
엔트리 포인트 - 서비스 인터페이스 엔트리 포인트 (810) 및 관련 WSDL 바인딩을 캡슐화하는 층. 이러한 액세스 포인트를 통해, 다른 노드들이 서비스를 호출하고, 파라미터 데이터를 전달하며, 결과를 수집한다.
메시지 프로세싱 로직 - 메시지 프로세싱 위한 로직에 대응하는 계층 (820) 으로 보통 메시지 프로세싱을 구동시키는 메시지 펌프 (825), XML 데이터 바인딩 지원 (826) 의 일부 타입, 및 낮은 레벨의 XML 파서 (parser) 와 데이터 표현 지원 (827) 을 포함한다.
원시 서비스 - 원시 서비스가 이용가능한지를 표현하는 계층으로 (여기에서 대응하는 서비스 메시지가 매핑된다) 원시 서비스 API (830) 및 대응하는 구현 (840) 을 포함한다.
3.5. 워크플로 콜레이터
바람직한 실시예에서, 워크플로 콜레이터 (WFC) 는 요청 이벤트의 흐름을 조정하고, 일시적인 결과 및 중간 결과를 포함한 관련 데이터를 관리하며, 이행과 관련된 규칙을 시행함으로써 대부분의 사소하지 않은 NEMO 서비스 요청을 이행하도록 돕는다. 이 타입의 기능을 보여주는 예는 관계형 데이터베이스의 단순한 트랜잭션 모니터에서부터 마이크로소프트 MTS/COM+ 에서 볼 수 있는 좀 더 일반화된 모니터까지의 범위인 트랜잭션 조정기의 형태에서 찾아볼 수 있다.
일 실시예에서, 워크플로 콜레이터는 프로그래밍이 가능한 메커니즘으로, 이 메커니즘을 통해 NEMO 노드가 서비스 호출의 프로세싱 및 이행을 편성한다. WFC는 특정 NEMO 노드의 특성과 요건에 따라 맞춤 설계가 가능하며, 전통적인 메시지 큐 (queues) 로부터 좀 더 정교한 분산 트랜잭션 조정기까지 다양한 기능을 지원하도록 설계될 수 있다. 비교적 단순한 WFC 는 임의의 서비스-관련 메시지의 저장과 검색을 위한 인터페이스를 제공할 수도 있다. 이것을 토대로, (i) 더욱 효율적으로 프로세싱하기 위한 서비스 요청을 수집하고, (ii) 서비스 응답들을 모아 복합 응답으로 만들고, (iii) 다수의 서비스 요청과 서비스 응답을 수동으로 편성하여 복합 서비스 (composite service) 를 생성하며, (iv) 다수의 서비스 요청과 서비스 응답을 자동으로 편성하여 복합 서비스를 생성하는 것을 포함하는 광범위하게 다양한 기능을 지원할 수 있다.
기본적인 서비스 상호작용 패턴은, 서비스 요청이 노드의 서비스 적응층을 통해 일부 NEMO 노드에 도달하면서 시작한다. 메시지는, 처음에는 WFC를 구동하고 다시 WFC에 의해 구동되어 요청을 이행하고 응답을 반환하는 WSDL 메시지 펌프로 전달된다. 좀 더 복잡한 시나리오에서 서비스 요청의 이행을 위해서 다수의 메시지와 응답이 필요하고 다수 노드가 조정된 방식으로 참여할 필요가 있다. 요청을 프로세싱하기 위한 규칙은 시스템의 서비스 설명 언어로 또는 BPEL 과 같은 다른 서비스 편성 설명 표준을 이용해서 표현될 수 있다.
WFC 에 메시지가 제공되면, WFC 는 이 요청을 프로세싱하기 위한 정확한 규칙을 결정한다. WFC 의 구현에 따라, 서비스 설명 로직은 노드가 공개시키는 서비스 세트를 위한 고정 상태 머신의 형태로 표현되거나 좀 더 자유로운 형태의 서비스 프로세싱 로직 표현의 프로세싱을 지원하는 방식으로 표현될 수도 있다.
바람직한 실시예에서 WFC 아키텍처는 모듈형이고 확장이 가능해 플러그인을 지원한다. 서비스 구성을 해석하고 규칙을 프로세싱하는 것 외에도, WFC 는 서비스 이행 프로세싱 수명주기 (lifecycle) 를 시작하는 콘텍스트에서 NEMO 메시지를 이용할 것인지 또는 온고잉 트랜잭션 체인의 입력으로서 이용할 것인지 결정할 필요가 있을 수도 있다. 일 실시예에서, NEMO 메시지는 이러한 유형의 결정을 내리기 위해 사용되는 ID와 메타데이터를 포함하고 있다. 또한, NEMO 메시지는 서비스 트랜잭션 특정일 수도 있는 부가적인 정보를 포함하도록 확장될 수 있으며, 메시지의 프로세싱을 촉진한다.
아래에서 좀 더 자세히 논의하겠지만, 통지 서비스는 NEMO 시스템의 다양한 실시예에 의해 직접 지원된다. 통지는, 프로세싱을 위해 지정된 서비스 인터페이스상에서 수신되는, 이해관계가 있는 NEMO-가능 노드를 타깃으로 하는 메시지를 나타낸다. 통지는 정보를 반송하기 위해 다양한 세트의 페이로드 타입들을 포함할 수도 있으며, 노드가 통지와 이해관계가 있는지 결정하기 위해 사용되는 기준은 아이덴티티 기반 기준뿐만 아니라 이벤트 기반 기준을 포함해 확장이 가능하다.
도 9a 에 도시된 실시예에서 서비스-제공 NEMO 노드 (910) 는, 클라이언트 노드 (940) 로부터의 서비스 요청을 이행하기 위해 그 노드의 워크플로 콜레이터 (914) 에 의한 편성 프로세스 (예를 들어, 다른 두 서비스 제공자로부터의 결과의 수집 및 프로세싱) 을 요구하는 서비스를 제공한다.
클라이언트 노드 (940) 상의 NEMO-가능 애플리케이션 (942) 이 서비스 제공자 (910) 가 제공하는 서비스를 호출하기 위한 요청을 시작하면, 워크플로 콜레이터 (914) 는 차례로 (애플리케이션 (942) 을 대신해서) 자신의 요청을 시작하기 위해 메시지를 생성해서, 각각, 노드 (920) 상의 서비스 제공자 "Y" (922) 와 노드 (930) 상의 서비스 제공자 "Z" (932) 에게 보낸다. 그 다음에 워크플로 콜레이터 (914) 는 이 두 서비스 제공-노드로부터 결과를 대조하고 프로세싱해서 클라이언트 노드 (940) 로부터의 원래 요청을 이행한다.
또 다른 방법으로, 요청된 서비스는 다수의 서비스-제공 노드의 서비스를 요구하지 않을 수도 있지만, 대신 서비스-제공 노드와 요청 클라이언트 노드 사이에서 여러 차례 또는 여러 단계의 통신을 요구할 수 있다. 도 9b 에 도시되어 있듯이, 클라이언트 노드 (940) 상의 NEMO 가능 애플리케이션 (942) 이 서비스 제공자 (910) 가 제공하는 서비스를 호출하기 위해 요청을 시작하면, 워크플로 콜레이터 (914) 는, 차례로, 원래의 요청을 이행하기 위해 클라이언트 노드 (940) 와의 여러 단계의 통신 (950) 에 관여한다. 예를 들어, 워크플로 콜레이터 (914) 는 메시지를 생성해서 클라이언트 노드 (940) 에 (액세스 포인트 (944) 를 통해) 전송하고 응답을 수신해서 프로세싱한 다음, 이후의 통신 단계 동안 추가적인 메시지를 생성하여 (및 추가 응답을 수신하여) 궁극적으로 클라이언트 노드 (940) 로부터의 원래의 요청을 이행한다.
이 시나리오에서, 서비스 제공자 (910) 는 워크플로 콜레이터 (914) 를 이용해서 (서비스 요청의 일부로서 서비스-특정 세션 ID 및 트랜잭션 ID 에 기초하여) 정확한 프로세싱을 위해 클라이언트와 어떤 오퍼레이션 단계에 있는지 계속 추적한다. 위에서 언급했듯이, 상태 머신 또는 유사한 메커니즘이나 기법을 이용해서 이러한 통신 (950) 의 이러한 다수의 단계를 프로세싱할 수 있다.
도 9c 는 서비스 제공 노드 (960) 내에서 이루어지는 (도시되지는 않지만 노드의 서비스 적응층 내의) 워크플로 콜레이터 (914) 와 메시지 펌프 (965) 사이의 비교적 기본적인 상호작용의 실시예를 도시하고 있다. 위에서 언급했듯이, 워크플로 콜레이터 (914) 는 하나 이상의 서비스 요청 (962) 를 프로세싱하고 응답 (964) 를 생성하며 저장 및 검색 메커니즘 (966) 을 이용해 이 편성 프로세스의 상태를 유지한다. 이 단순한 예에서, 워크플로 콜레이터 (914) 는 다수의 서비스 요청과 응답을 프로세싱할 수 있으며, 상당히 단순한 상태 머신으로 구현될 수 있다.
그러나 더 복잡한 프로세싱의 경우 도 9d는 서비스 편성 수행 시 구동하거나 구동될 수 있는 노드 아키텍처를 도시한다. 이러한 기능에는, 다수의 서비스 요청의 콜렉션, 응답을 복합 응답으로 집합, 및 복합 서비스를 생성하기 위한 다수의 서비스 요청 및 응답의 수동 또는 자동 편성이 포함된다.
도 9d 의 워크플로 콜레이터 (914) 주변의 아키텍처는 다양한 시나리오를 지원할 수 있다. 예를 들어, (서비스와 관련된 비즈니스 프로세스의 고레벨 설명을 통해 구동되는 비즈니스 프로세스 언어 엔진과 같은) 프로세스 편성의 시맨틱이나 (서로 관련된 리소스의 시맨틱 의미로 구동될 수 있는 리소스 설명 프레임워크와 같은) 리소스 사용 시맨틱을 인식하는 외부 조정기 (970) 의 기능과 NEMO 노드의 기능을 결합함으로써, 더 간단한 서비스에 더하여 더욱 강력한 서비스를 생성할 수 있다. 맞춤형 외부 BPL (972) 및 RDF (973) 프로세서는 사람의 개입과 같은 수동 편성 프로세스 (966) 를 통해 프로세스 설명을 실행하기 위해 외부 엔진 메시지 펌프 (975) 에 영향을 줄 수 있다.
NEMO 노드의 메시지 펌프와 함께 작동하는 외부 조정기에 의존하는 수동으로 구동된 프로세스에 의존하는 것 이외에도, 모듈이 워크플로 콜레이터 (914) 와 직접 통합되어 서비스 조정 및 편성 (968) 의 자동화된 형식을 지원할 수도 있는 아키텍처를 생성하는 것이 또한 가능하다. 예를 들어, BPEL 및 EBXML 에서 나타내고 서비스 인터페이스와 관련된 웹 서비스 바인딩에서 전달되는 패턴과 같은 서비스 편성 패턴의 통상적인 타입에 있어서, 워크플로 콜레이터 (914) 는 시간에 따라 도착하는 요청 및 응답 메시지 (967) 의 콜렉션 및 설명에 의해 직접 구동될 수 있다. 이 시나리오에서, 복합 응답 메시지는 소정의 편성 프로세서 플러그인 (예를 들어, BPEL (982) 또는 EBXML (983)) 과 관련된 상태 머신이 적절하다고 결정된 경우에만 메시지 펌프 (965) 로 푸시 (push) 된다.
다음은 NEMO 워크플로 콜레이터의 구현에 의해 엑스포트되는 비교적 고-레벨 API 설명의 실시예이다.
WorkflowCollator ::Create(Environment[]) -> WorkflowCollator - WFC의 초기화된 인터페이스를 반환하는 싱글톤 인터페이스이다. WFC는 선택적인 세트의 환경 파라미터에 기초하여 초기화될 수 있다.
WorkflowCollator :: Store ( Key [], XML Message ) -> Boolean - 호출자가 특정된 키의 세트를 통해 서비스 메시지를 WFC 내에 저장할 수 있는 API이다.
WorkflowCollator :: RetrieveByKey ( Key [], XML Message ) -> XML Message [] - 호출자가 특정된 키의 세트를 통해 메시지의 세트를 검색할 수 있는 API이다. 반환된 메시지는 더 이상 WFC 내에 포함되지 않는다.
WorkflowCollator :: PeekByKey ( Key [], XML Message ) -> XML Message [] - 호출자가 특정된 키의 세트를 통해 메시지의 세트를 검색할 수 있는 API이다. 반환된 메시지는 계속 WFC 내에 포함된다.
WorkflowCollator : Clear () -> Boolean - 호출자가 WFC 내에 저장된 임의의 메시지를 클리어할 수 있는 API이다.
비교적 엄격한 BPEL 편성 표준의 대안으로, 또 다른 실시예는, 예를 들어, 분산 탐색과 같은 더 동적인 애플리케이션 프로그램에 대해 더 애드 혹적인 (ad hoc) XML-기반 편성 설명을 허용할 수 있다. NEMO 워크플로 콜레이터에 의해 해석될 수 있는 (충분히 풍부한 언어가 제공될 경우 전체 서비스를 대체할 수도 있는) 다음의 설명을 고려한다.
<WSDL>
<NEMO Orchestration Descriptor>
<Control Flow> 예: EXECUTE Service A;
If result = Yes then Service B;
Else Service C
<Shared State/Context> 예: Device State <Transactions> 예: State, Rollback 등 <Trust/Authorization> Trust가 반드시 이행적 (transitive) 일 필 요는 없음.
3.6. 예시적인 DRM 엔진 아키텍처
위에서 설명한 NEMO 노드 아키텍처의 다양한 실시예의 콘텍스트에서, 도 10 은 DRM 엔진 (1000) 의 모듈형 실시예를 NEMO 콘텐츠 소비 디바이스로 통합함으로써 수많은 상이한 디바이스와 소프트웨어 환경으로 그것의 통합을 촉진한다는 것을 나타낸다.
호스트 애플리케이션 프로그램 (1002) 은 일반적으로 요청을 수신하여 그것의 사용자 인터페이스 (1004) 를 통해 콘텐츠의 특정 부분에 액세스한다. 그런 다음 호스트 애플리케이션 (1002) 은 (바람직하게는 호스트 애플리케이션에 대해 불투명인) 관련 DRM 엔진 오브젝트와 함께 요청을 DRM 엔진 (1000) 으로 전송다. DRM 엔진 (1000) 은 잘 정의된 인터페이스를 통해 호스트 서비스 모듈 (1008) 에 부가적인 정보와 암호화 서비스를 요청할 수도 있다. 예를 들어, DRM 엔진 (1000) 은 호스트 서비스 (1008) 에게 특정 링크가 신뢰되는지 여부를 질문하거나 특정 오브젝트의 암호가 해독되길 요청할 수도 있다. 필수 정보 중 일부는 원격 위치에 있을 수 있으며 이 경우에 호스트 서비스 (1008) 는 서비스 액세스 포인트 (1014) 를 통해 네트워크화된 서비스로부터 정보를 요청할 수 있다.
DRM 엔진 (1000) 이 특정 오퍼레이션이 허용된다고 결정하면, 그 엔진은 이를 나타내고 임의의 요구된 암호화 키를 호스트 서비스 (1008) 에게 반환하며, 그 호스트 서비스는 호스트 애플리케이션 (1002) 의 지시 하에 콘텐츠 서비스 (1016) 에 의존하여 원하는 콘텐츠를 획득하고 그것의 사용을 관리한다. 그런 다음 호스트 서비스 (1008) 는, 필요한 경우 암호화 서비스 (1012) 로 조정되는 미디어 렌더링 (1010) 의 프로세스 (예를 들어, 스피커를 통해 콘텐츠를 재생하거나 스크린에 콘텐츠 디스플레이 등) 를 시작할 수도 있다.
도 10 에 도시된 시스템 아키텍처는 DRM 엔진이 애플리케이션에서 사용될 수 있는 방법을 보여주는 비교적 간단한 예이지만 가능한 여러 방법 중 하나일 뿐이다. 예를 들어, 다른 실시예에서, DRM 엔진은 비교적 정교한 정책 관리 시스템의 통제 하에 패키징 애플리케이션에 통합될 수 있다. 아래에서는 DRM 엔진의 클라이언트 (콘텐츠 소비) 애플리케이션 및 서버 (콘텐츠 패키징) 애플리케이션 양자 및 이러한 애플리케이션에 의존하는 상이한 타입의 DRM-관련 오브젝트를 설명하고 이어서 DRM 엔진 자체의 내부 아키텍처에 관련된 하나의 실시예에 대해 설명한다.
도 11 에 도시된 DRM 엔진 (1100) 은 광범위한 호스트 플랫폼내의 내부 DRM 프로세싱 (예를 들어, 콘텐츠 액세스를 통제하는 제어 프로그램 실행) 을 위한 가상 머신, 즉, 제어 VM (1110) 에 의존하며, 호스트 환경 (1120) (위에서 설명했으며 상세히 후술됨) 을 이용하여 노드의 호스트 애플리케이션 (1130) 과 통신하고 궁극적으로는 예를 들어, NEMO 또는 다른 시스템 내의 다른 노드와 통신한다.
일 실시예에서, 제어 VM (1110) 은 콘텐츠 액세스를 통제하는 제어 프로그램을 실행하기 위해 DRM 엔진 (1100) 의 실시예에 의해 사용된 가상 머신이다. 다음은 제어 VM (1110) 의 DRM 엔진 (1100) 의 아키텍처로의 통합뿐만 아니라 제어 VM의 일부 기본 엘리먼트에 대한 설명이며, 명령 세트, 메모리 모델, 코드 모듈 및 시스템 호출 (1106) 을 통한 호스트 환경 (1120) 과의 상호작용에 대한 세부사항을 포함한다.
일 실시예에서, 제어 VM (1110) 은 다양한 프로그래밍 언어를 사용하여 쉽게 구현하도록 설계된 비교적 소형-풋프린트 가상 머신이다. 그 VM은, 실행 속도나 코드 밀도에 그다지 신경 쓰지 않고 사실상 미니멀리스트 (minimalist) 하도록 설계된 스택-지향 명령 세트에 기초한다. 그러나 소정의 애플리케이션에서 실행 속도 및/또는 코드 밀도가 문제가 되었다면, 종래의 기법 (예를 들어, 데이터 압축) 을 사용하여 성능을 개선할 수 있다는 것을 인식할 것이다.
제어 VM (1100) 은 저레벨 또는 고레벨 프로그래밍 언어에 대한 타깃으로서 적합하며 어셈블러 C, FORTH 와 같은 언어를 지원한다. 또한, Java 나 맞춤화 언어와 같은 다른 언어용 컴파일러가 비교적 쉽게 구현될 수 있다.
제어 VM (1110) 은, 프로세서상에서 또는 실리콘내에서 직접 구동되지 것과는 대조적으로 호스트 환경 (1120) 을 포함한 DRM 엔진 (1100) 내에서 호스팅되도록 설계되었다. 제어 VM (1110) 은 코드 모듈 (1102) 에 저장된 명령을 실행함으로써 프로그램을 실행한다. 이러한 명령 중 일부는 하나 이상의 시스템 호출 (1106) 을 행함으로써 프로그램 외부에서 구현된 함수를 호출할 수 있으며, 그 시스템 호출은 제어 VM (1110) 자체에 의해 구현되거나 호스트 환경 (1120) 으로 위임된다.
실행 모델
제어 VM (1110) 은 메모리 (1104) 에 로딩된 바이트 (byte) 코드의 스트림으로서 코드 모듈 (1102) 에 저장된 명령을 실행한다. 제어 VM (1110) 은, 명령이 실행될 때마다 숫자가 증가하는 프로그램 카운터 (PC) 라는 가상 레지스터를 사용한다. VM 은 OP_STOP 명령을 만나거나 비어 있는 호출 스택을 가진 OP_RET 명령을 만나거나 예외가 발생할 때까지 각 명령을 순차적으로 실행한다. 점프는 상대 점프 (PC의 현재 값으로부터 바이트 오프셋으로 특정됨) 나 절대 어드레스로서 특정된다.
메모리 모델
일 실시예에서, 제어 VM (1110) 은 비교적 간단한 메모리 모델이다. VM 메모리 (1104) 는 데이터 세그먼트 (DS) 와 코드 세그먼트 (CS) 로 분리된다. 데이터 세그먼트는 어드레스 0에서 시작하는 연속적인 단일 플랫 메모리 공간이다. 데이터 세그먼트는 일반적으로 호스트 애플리케이션 (1130) 또는 호스트 환경 (1120) 의 힙 (heap) 메모리 내에 할당되는 바이트의 어레이이다. 소정의 VM 구현의 경우, 메모리 공간의 사이즈는 최대값으로 고정되는 것이 바람직하며, 이 공간 밖의 메모리에 액세스하려는 시도는 오류를 초래하고 프로그램 실행을 중단시킬 것이다. 데이터 세그먼트는 VM에 의해 동시에 로딩되는 여러 코드 모듈 (1102) 간에 잠재적으로 공유된다. 데이터 세그먼트의 메모리는 메모리-액세스 명령에 의해 액세스될 수 있으며 32 비트 또는 8 비트 액세스일 수 있다. 32 비트 메모리 액세스는 빅-엔디안 (big-endian) 바이트 순서를 사용하여 달성된다. VM-가시 메모리와 호스트-관리 메모리 (호스트 CPU 가상적 또는 물리적 메모리) 간의 정렬에 대해 어떠한 가정도 하지 않는다.
일 실시예에서, 코드 세그먼트는 어드레스 0 에서 시작하는 연속적인 플랫 메모리 공간이다. 코드 세그먼트는 일반적으로 호스트 애플리케이션 (1130) 이나 호스트 환경 (1120) 의 힙 메모리 내에 할당되는 바이트의 어레이이다.
제어 VM (1110) 은 여러 코드 모듈을 로딩할 수도 있으며, 모든 코드 모듈이 동일한 데이터 세그먼트를 공유할 수도 있지만 (각 모듈의 데이터는 상이한 어드레스에 로딩되는 것이 바람직함), 각각은 자신의 코드 세그먼트를 가진다 (예를 들어, 일 코드 모듈 (1102) 로부터의 점프 명령이 다른 코드 모듈 (1102) 에 있는 코드로의 직접적인 점프를 초래할 가능성이 없는 것이 바람직하다.)
데이터 스택
바람직한 실시예에서 VM 은 데이터 스택을 의미하며 데이터 세그먼트에 저장된 32비트 데이터 셀을 나타낸다. VM 은 스택 포인터 (SP) 로 불리는 가상 레지스터를 보유한다. 재설정 후에 SP는 데이터 세그먼트의 끝을 가리키고 스택은 아래로 증가한다 (데이터 스택으로 데이터가 푸시되면 SP 레지스터가 감분된다.) 스택의 32비트 값은 스택 데이터를 레퍼런싱하는 명령에 따라 32 비트 어드레스된 32 비트 부호있는 (signed) 정수로 해석된다.
호출 스택
일 실시예에서, 제어 VM (1110) 은 네스팅된 (nested) 서브루틴 호출을 행하기 위한 호출 스택을 관리한다. 이 스택으로 푸시된 값은 메모리-액세스 명령에 의해 직접 기입되거나 판독될 수 없지만 VM이 OP_ JSR 및 OP_RET 명령을 실행할 때 간접적으로 사용한다. 소정의 VM 프로필에서, 이 반환 어드레스 스택의 사이즈는 최대값으로 고정되는 것이 바람직하며, 따라서 중첩된 호출은 지정된 수를 초과할 수 없다.
명령 세트
일 실시예에서, 제어 VM (1110) 은 비교적 간단한 명령 세트를 사용한다. 그러나 제한된 수의 명령만 사용하더라도 간단한 프로그램을 표현할 수 있다. 명령 세트는 OP_PUSH 명령을 제외하고 스택 기반이며 어떠한 명령도 직접 피연산자 (operand) 를 갖지 않는다. 피연산자는 데이터 스택으로부터 판독되고 결과는 데이터 스택으로 푸시된다. VM 은 32 비트 VM 이며 이러한 예시적인 실시예의 모든 명령은 메모리 어드레스나 부호있는 정수를 나타내는 32 비트 스택 피연산자에 관해 동작한다. 부호있는 정수는 2s 보수 (2s complement) 바이너리 인코딩을 사용하여 나타낸다.
다음은 일 실시예에서 사용되는 예시적인 명령 세트를 나타낸다.
OP CODE 이름 피연산자 설명
OP_PUSH 푸시 상수 N (직접) 스택에 상수 푸시
OP_DROP 드롭 스택의 최상부를 제거
OP_DUP 복제 스택의 최상부를 복제
OP_SWAP 스왑 최상단의 2개의 스택 엘리먼트를 스왑
OP_ADD 더하기 A, B A와 B의 합을 푸시 (A+B)
OP_MUL 곱하기 A, B A와 B의 곱을 푸시 (A*B)
OP_SUB 빼기 A, B A와 B 사이의 차이를 푸시 (A-B)
OP_DIV 나누기 A, B A를 B로 나눈 값을 푸시 (A/B)
OP_MOD 모듈로 A, B A 모듈로 B의 값을 푸시 (A%B)
OP_NEG 부정 A A의 2s 보수 부정을 푸시 (-A)
OPCMP 비교 A A가 음수이면 -1 0이면 0, 양수이면 1을 푸시
OP_AND And A, B A와 B의 bit-wise AND를 푸시(A & B)
OP_OR Or A, B A와 B의 bit-wise OR를 푸시 (A | B)
OP_XOR Exclusive Or A, B A와 B의 bit-wise exclusive OR를 푸시 (A^B)
OP_NOT 논리 부정 A A의 논리 부정을 푸시 (A가 0이면 1, A가 0이 아니면 0)
OP_SHL 왼쪽으로 이동
A, B B비트만큼 왼쪽으로 논리적 이동 푸시(A << B)
OP_SHR 오른쪽으로 이동
A, B B비트만큼 오른쪽으로 논리적 이동 푸시(A >> B)

OP_JSR
서브루틴으로 점프 A 절대 어드레스 A의 서브루틴으로 점프
OP_JSRR 서브루틴으로 점프(상대적) A PC+A의 서브루틴으로 점프
OP_RET 서브루틴으로부터 복귀
서브루틴으로부터 복귀
OP_BRA 항상 분기
A PC + A로 점프
OP_BRP 양수인 경우 분기
A, B B > 0인 경우 PC+A로 점프
OP_BRN 음수인 경우 분기
A, B B < 0인 경우 PC+A로 점프
OP_BRZ 0인 경우 분기
A, B B가 0인 경우 PC+A로 점프
OP_JMP 점프
A A로 점프
OP_PEEK 피크
A 어드레스 A의 32비트 값을 푸시
OP_POKE 포크
A, B 어드레스 A의 32비트 값을 B 저장
OP_PEEKB 바이트 피크
A 어드레스 A의 8비트 값을 푸시
OP_POKEB 바이트 포크
A, B B의 LSB를 어드레스 A에 저장
OP_PUSHSP 스택 포인터 푸시
SP의 값을 푸시
OP_POPSP 스택 포인터 팝
A SP의 값을 A로 설정
OP_CALL 시스템 호출
A 인덱스 A로 시스템 호출을 수행
OP_STOP 중지
실행 종료
모듈 포맷
일 실시예에서, 코드 모듈 (1102) 은 MPEG-4 파일 포맷에서 사용되는 원자 (atom) 구조와 본질적으로 동등한 원자-기반 포맷으로 저장된다. 원자는, (8 옥텟 사이즈) 원자의 페이로드 이후에, (보통 알파벳 문자의 ASCII 값에 대응하는 옥텟) 4-옥텟 타입에 후속하여 4-옥텟으로서 빅-엔디안 바이트 순서로 저장된 32비트로 구성된다.
3.7. DRM 클라이언트-서버 아키텍처: 콘텐츠 소비 및 패키징
위에서 언급한 것처럼 DRM 클라이언트측 소비 애플리케이션 (예를 들어, 미디어 플레이어) 은 DRM 콘텐츠 (예를 들어, 음악 연주, 영화 상영 등) 를 소비한다. DRM 서비스측 패키징 애플리케이션 (대개 서버 상에 상주함) 패키지 컨텐트 (예를 들어, 콘텐츠 관련 사용 및 배포 권한, 암호화 키 등) 는 DRM 클라이언트를 타깃으로 하였다.
도 12a 는 DRM 클라이언트의 주요 아키텍처 엘리먼트의 일 실시예를 도시한다. 호스트 애플리케이션 (1200) 은 사용자 인터페이스 (1210) 를 통해 디바이스 사용자 (예를 들어, 음악 플레이어 소유자) 와 인터페이스한다. 예를 들어, 사용자는 보호된 콘텐츠에 대한 액세스를 요청하고 콘텐츠와 함께 메타 데이터를 수신할 수도 있다 (예를 들어, 노래 자체에 대한 오디오와 함께 작곡가의 이름과 노래 제목을 디스플레이하는 텍스트).
호스트 애플리케이션 (1200) 은 사용자 인터페이스 (1210) 와의 상호작용이외에도 사용자의 요청을 구현하는 데 필요한 다양한 기능을 수행하며, 일정 기능을 위임하는 다른 DRM 클라이언트 모듈과의 상호작용을 관리하는 것을 포함할 수도 있다. 예를 들어, 호스트 애플리케이션 (1200) 은 요청된 콘텐츠를 추출하기 위해 파일 시스템과의 상호작용을 관리할 수도 있다. 또한, 호스트 애플리케이션은 보호된 콘텐츠 오브젝트 포맷을 인식하고 DRM 엔진 (1220) 으로 요청을 보내 (예를 들어, 관련 제어 프로그램을 실행함으로써) 라이센스를 구성하는 DRM 오브젝트를 평가하여 보호된 콘텐츠에 대한 액세스를 허여할지 여부를 결정한다.
사용 권한이 허여되면, 호스트 애플리케이션 (1200) 은 요구된 서명을 확인하고 암호 서비스 (1230) 및 DRM 엔진 (1220) 에 의해 요구된 기타 범용 암호화 기능을 위임할 필요가 있을 수도 있다. DRM 엔진 (1220) 은, DRM 오브젝트를 평가하고 사용 권한을 승인하거나 거부하며, 콘텐츠의 암호를 해독하기 위해 호스트 애플리케이션 (1200) 에 키를 제공할 임무가 있다.
호스트 서비스 (1240) 는 DRM 엔진 (1220) 에게 호스트 애플리케이션 (1200) 이 관리하는 데이터 (뿐만 아니라 그 호스트 애플리케이션에 의해 구현된 일정 라이브러리 함수) 에 대한 액세스 권한을 제공한다. 호스트 애플리케이션 (1200) 은 콘텐츠 서비스 (1250) 와 상호작용하여, 보호된 콘텐츠에 액세스하며, 프로세싱을 요구하는 콘텐츠 부분만을 DRM 엔진 (1220) 으로 전달한다. 콘텐츠 서비스 (1250) 는 외부 미디어 서버로부터 콘텐츠를 획득하고, 클라이언트의 영구 저장 메커니즘에 의존하여 그 콘텐츠를 저장/관리한다.
액세스를 위해 콘텐츠가 클리어되면, 호스트 애플리케이션 (1200) 은 (예를 들어, 키를 전달함으로써) 미디어 렌더링 엔진 (1260) 과 상호작용하고 클라이언트의 AV 출력 설비를 통해 콘텐츠의 암호를 해독하고 그 것을 렌더링한다. DRM 엔진 (1220) 에서 필요한 정보 중 일부는 콘텐츠와 함께 대역내에서 이용가능하며, 콘텐츠 서비스 (1250) 를 통해 획득/관리될 수 있지만 다른 정보는 외부 NEMO DRM 서비스나 다른 서비스를 통해 획득될 필요가 있을 수도 있다.
바람직한 실시예에서, 모든 암호 오퍼레이션 (암호화, 서명 확인 등) 은 암호 서비스 (1230) 에 의해 처리되며, 그 암호 서비스는 요청을 전달하는 호스트 서비스 (1240) 를 통해 DRM 엔진 (1220) 과 간접적으로 상호작용한다. 또한, 암호 서비스 (1230) 는 미디어 렌더링 엔진 (1260) 에 의해 사용되어, 콘텐츠 암호 해독을 수행할 수 있다.
서비스측으로 돌아가서, 도 12b는 예시적인 DRM 서비스측 패키징 노드의 주요 아키텍처 엘리먼트의 실시예를 도시한다. 호스트 애플리케이션 (1200) 은 사용자 인터페이스 (1210) 를 통해 콘텐츠 패키저 (예를 들어, 음악 콘텐츠 소유자 또는 배포자) 와 인터페이스한다. 패키저는, 예를 들어, 콘텐츠를 보호하고 (예를 들어, 암호화 및 액세스 권한 제한) 다양한 엔트 사용자 및 중개 콘텐츠 제공 노드에 배포하기 위해 호스트 애플리케이션 (1200) 에게 콘텐츠 및 라이센스 정보를 제공할 수도 있다.
또한, 호스트 애플리케이션 (1200) 은 사용자 인터페이스 (1210) 와의 상호작용이외에도 패키저의 요청을 구현하는데 필요한 다양한 기능을 수행할 수 있으며, 그 기능은, 예를 들어, 일정 기능을 위임한 다른 DRM 패키징 모듈과의 상호작용을 관리하는 것을 포함한다. 예를 들어, 그 기능은 콘텐츠를 암호화하기 위해 일반 암호 서비스 (1235) 와의 상호작용을 관리할 수도 있다. 또한, 그 기능은 (예를 들어, DRM 패키징 엔진 (1225) 이 라이센스를 구성하는 DRM 오브젝트를 생성한 후) 콘텐츠를 포함 및 레퍼런싱하거나 라이센스를 포함 및 레퍼런싱하는 콘텐츠 오브젝트를 생성할 수도 있다. 메타 데이터는, 라이센스의 내용을 사람이 판독가능한 방식으로 (예를 들어, 잠재적인 클라이언트 사용자가 볼 수 있도록) 설명하는 라이센스와 관련될 수 있다.
위에서 언급된 것처럼, 호스트 애플리케이션 (1200) 은 사용자 인터페이스 (1210) 를 통해 사용자와 상호작용한다. 그것은 콘텐츠 레퍼런스 및 패키저가 수행하길 원하는 액션과 같은 정보 (예를 들어, 콘텐츠 바인딩 대상) 를 획득하는 것을 담당한다. 또한, 그것은 발급된 라이센스의 텍스트와 같은 패키징 프로세스에 대한 정보, 및 오류가 발생한 경우 그 오류의 원인을 디스플레이 할 수 있다. 호스트 애플리케이션 (1200) 에 의해 필요로 하는 일부 정보는 (예를 들어, 멤버쉽뿐만 아니라 인증 또는 인가와 같은 서비스에 영향을 주기 위해) NEMO 서비스 (1270) 의 사용을 요구할 수도 있다.
일 실시예에서 호스트 애플리케이션 (1200) 은 트랜스코딩 및 패키징과 같은 모든 미디어 포맷 오퍼레이션을 관리하기 위해 미디어 포맷 서비스 (1255) 의 임무를 위임한다. 일반 암호 서비스 (1235) 는 일정 데이터의 암호화 및 암호 해독뿐만 아니라 서명 발급 및 확인 업무를 담당한다. 이러한 오퍼레이션 요청은 외부적으로 또는 호스트 서비스 (1240) 를 통해 DRM 패키징 엔진 (1225) 으로부터 발행될 수 있다.
일 실시예에서, 콘텐츠 암호 서비스 (1237) 는 호스트 애플리케이션 (1200) 을 인식할 수 없기 때문에, 일반 암호 서비스 (1235) 로부터 논리적으로 분리된다. 그것은, DRM 패키징 엔진 (1225) 에 의해 이전에 발급된 키의 세트를 사용하여 콘텐츠 패키징 시간에서 미디어 포맷 서비스 (1255) 에 의해 구동된다 ( 그 키들의 세트 모두는 호스트 애플리케이션 (1200) 에 의해 조정됨).
3.8. DRM 콘텐츠 보호 및 통제 오브젝트
예시적인 시나리오에서, 콘텐츠 제공자는 콘텐츠를 보호하고 그의 사용을 통제하는 오브젝트의 세트를 생성하기 위해, DRM 패키저 엔진에 의존하는 호스트 애플리케이션을 사용하며, 여기에는, 콘텐츠 암호화 키를 획득하는데 필요한 정보 전달을 포함한다. "license" 라는 용어는 이러한 오브젝트의 세트를 포함하기 위해 사용된다.
바람직한 실시예에서, 콘텐츠 및 그의 라이센스는 논리적으로 별개이지만 오브젝트 ID를 사용하는 내부 레퍼런스에 의해 함께 바인딩된다. 콘텐츠와 라이센스는 대개 함께 저장되지만 필요한 경우 또는 원하는 경우 별도로 저장될 수도 있다. 라이센스를 두 개 이상의 콘텐츠 아이템에 적용할 수 있으며, 두 개 이상의 라이센스를 단일 콘텐츠 아이템에 적용할 수 있다.
도 13 은 아래 설명된 오브젝트 세트 간의 관계를 포함하여 이러한 라이센스의 실시예를 도시한다. 제어 오브젝트 (1320) 와 제어기 오브젝트 (1330) 양자는 이러한 실시예에서 서명된 오브젝트이므로, DRM 클라이언트 엔진이, 호스트 애플리케이션에게 보호된 콘텐츠에 대한 액세스 권한을 제공하기 전에, 제어 정보의 출처를 신뢰할 수 있는지 확인할 수 있다. 이 실시예에서 이러한 오브젝트들 모두는 콘텐츠 오브젝트 (1300) 를 제외하고 DRM 클라이언트 엔진에 의해 생성된다.
콘텐츠 오브젝트 - 콘텐츠 오브젝트 (1300) 는 고유 ID (1302) 를 사용하여 콘텐츠와 그것의 관련 키 간의 바인딩을 촉진하는 암호화된 콘텐츠 (1304) 를 나타낸다. 콘텐츠 오브젝트 (1300) 는 "외부" 오브젝트이다. 암호화된 콘텐츠 (1304) (예를 들어, MP4 동영상 파일, MP3 음악 트랙 등) 의 포맷과 저장은 콘텐츠 타입에 부분적으로 기초하여 호스트 애플리케이션에 의해 결정된다 (또는 서비스로 위임된다). 또한, 콘텐츠의 포맷은 ID (1302) 를 암호화된 콘텐츠 (1304) 와 관련시키기 위한 지원을 제공한다. 패키저의 호스트 애플리케이션은 임의의 이용가능한 암호 시스템을 사용하여 (예를 들어, AES와 같은 대칭키를 사용하여) 포맷 의존적인 방식으로 콘텐츠를 암호화하고 콘텐츠 오브젝트 (1300) 를 관리한다.
콘텐츠 키 오브젝트 - 콘텐츠 키 오브젝트 (1310) 는 (선택적으로 오브젝트 내에 내부적으로 저장되는 고유 암호화 키(들)을 포함하는) 암호화된 키 데이터 (1314) 를 나타내며, 또한, 대응하는 고유 ID (1312) 를 가지고 있다. 콘텐츠 키 오브젝트 (1310) 내부에 포함된 경우, 이 키 데이터는 자체적으로 암호화되어, 콘텐츠의 암호를 해독하도록 인가된 키들에 의해서만 식별될 수 있다. 또한, 콘텐츠 키 오브젝트 (1310) 는 이 키 데이터의 암호화에 사용되었던 암호 시스템을 특정한다. 이 암호 시스템은 "키 배포 시스템"으로 불리며, 이 시스템의 실시예는 더 상세히 후술된다.
제어 오브젝트 - 제어 오브젝트 (1320) 는 콘텐츠 암호화 및 암호 해독에 사용되는 키의 사용을 통제하는 규칙을 나타내는 제어 프로그램 (예를 들어, 제어 바이트 코드 (1324)) 을 포함하고 보호한다. 또한, 그 오브젝트는 대응하는 콘텐츠 키 오브젝트에 바인딩될 수 있도록 ID (1322) 를 포함한다. 위에 언급된 것처럼 제어 오브젝트 (1320) 는, DRM 클라이언트 엔진이 콘텐츠 키 (1310) 와 제어 (1320) 간의 바인딩뿐만 아니라 콘텐츠 키 ID (1312) 와 암호화된 키 데이터 (1314) 간의 바인딩의 유효성을 검증할 수 있도록 서명된다. 제어 바이트 코드 (1324) 의 유효성은 제어기 오브젝트 (1330) 에 포함된 보안 해시 (hash) (예를 들어, 이용가능하다면, 제어 해시 (1338)) 검증을 통해 선택적으로 유도될 수 있다.
제어기 오브젝트 - 제어기 오브젝트 (1330) 는, ID (1312 및 1322) 를 사용하여 콘텐츠 키 (1310) 와 제어 (1320) 오브젝트를 바인딩하기 위해, 각각, 키와 해당 키의 제어를 통제하는 규칙 간의 바인딩을 나타낸다. 제어기 오브젝트 (1330) 는 해당 콘텐츠에 대한 규칙의 적용을 제어함으로써 (즉, 콘텐츠 키 오브젝트 (1310) 의 사용을 통제할 제어를 결정함으로써) 보호된 콘텐츠의 사용을 통제한다. 또한, 제어기 오브젝트 (1330) 는, 각 콘텐츠 키 오브젝트 (1310) 와 그의 대응하는 암호화된 키 데이터 (1314) 간의 바인딩을 조작하는 것을 방지하기 위해, 레퍼런싱하는 각 콘텐츠 키 오브젝트 (1310) 에 대한 해시 (1336) 값을 포함한다. 위에서 언급한 것처럼, 제어기 오브젝트 (1330) 는 콘텐츠 키 (1310) 와 제어 (1320) 오브젝트 간의 바인딩뿐만 아니라 콘텐츠 키 ID (1312) 와 암호화된 키 데이터 (1314) 간의 바인딩의 유효성을 검증할 수 있도록 (예를 들어, 후술될 바와 같이, 공개 키나 대칭 키 서명을 사용하여 제어기 오브젝트를 서명할 수 있는 인증서를 갖는 패키저 애플리케이션에 의해) 서명되는 것이 바람직하다. 또한, 위에서 언급된 것처럼, 제어기 오브젝트 (1330) 는 제어 해시 (1338) 를 선택적으로, 또한, 이 경우 별도로 그것의 서명을 검증하지 않고도 제어 오브젝트 (1320) 의 유효성을 유도할 수 있다.
대칭 키 서명 - 바람직한 실시예에서 대칭 키 서명은 제어기 오브젝트 (1330) 에 대한 가장 일반적인 타입의 서명이다. 일 실시예에서, 이러한 타입의 서명은 콘텐츠 키 오브젝트 (1310) 가 나타내는 키와 동일한 키로 키잉되는 제어기 오브젝트 (1330) 의 MAC (Message Authentication Code) 를 계산함으로써 구현된다.
공개 키 서명 - 바람직한 실시예에서, 이러한 타입의 서명은 제어기 오브젝트 (1330) 의 서명자의 아이덴티티가 고유하게 확인될 필요가 있는 경우에 사용된다. 이러한 타입의 서명은 공개 키 알고리즘을 사용하여 구현되며 해당 오브젝트의 유효성을 확인할 당사자의 비공개 키로 서명한다. 이러한 타입의 서명을 사용할 경우, 제어기 오브젝트 (1330) 에서 반송되는 콘텐츠 키 바인딩 정보는 콘텐츠 키 오브젝트 (1310) 에 포함된 키의 해시 (1336) 를 포함하는 것이 바람직하며, 서명한 비공개 키의 지문 (일반적으로 비공개 키의 해시) 으로 연접된다. 이러한 바인딩은, 오브젝트의 서명자가 콘텐츠를 보호하는 데 사용되는 키의 정보를 갖는 것을 보장한다.
보호기 (Protector ) 오브젝트 - 보호기 오브젝트 (1340) 는 콘텐츠 암호화 및 암호 해독에 사용되는 키의 사용을 제어함으로써 해당 콘텐츠에 대한 보호된 액세스를 제공한다. 보호기 오브젝트 (1340) 는 보호된 콘텐츠를 그의 대응하는 키와 관련시키기 위해 콘텐츠 오브젝트 (1300) 를 콘텐츠 키 오브젝트 (1310) 에 바인딩한다. 보호기 오브젝트는 이러한 바인딩을 달성하기 위해 콘텐츠 (1300) 와 콘텐츠 키 (1310) 의 ID (1302 및 1312) 에 대한 레퍼런스 (1342 및 1344) 를 각각 포함한다. 일 실시예에서, 보호기 오브젝트 (1340) 는 어떤 키가 하나 이상의 콘텐츠 아이템을 암호화하는데 사용되었는지 뿐만 아니라 어떤 암호화 알고리즘이 이용되었는지에 관한 정보를 포함한다. 일 실시예에서, 콘텐츠 레퍼런스 (1342) 가 두 개 이상의 콘텐츠 오브젝트 (1300) 를 레퍼런싱하는 경우, 콘텐츠 키 레퍼런스 (1344) 는 여전히 하나의 콘텐츠 키 오브젝트 (1310) 만을 레퍼런싱하며, 이는 해당 콘텐츠 아이템이 모두 동일한 암호화 알고리즘과 동일한 키를 사용하여 암호화되었음을 나타낸다.
3.9. DRM 노드 및 링크 오브젝트
도 13 은 보호된 콘텐츠에 대한 액세스를 제어하기 위해 DRM 엔진에 의해 생성되는 콘텐츠 보호 및 통제 오브젝트를 도시하지만, 도 14는 시스템의 엔티티 (예를 들어, 사용자, 디바이스 또는 그룹) 뿐만 아니라 해당 엔티티 간의 관계를 나타내는 DRM 오브젝트를 도시한다.
위에서 언급되었듯이, 도 4 는 엔티티와 이들의 관계를 나타내는 노드 또는 인가 그래프의 개념적 실시예를 도시하지만, 도 14는 이러한 개념적 그래프의 실시예를 구현하는 오브젝트의 2가지 타입, 즉, 엔티티와 이들의 속성을 나타내는 버텍스 (또는 "노드") 오브젝트 (1400a 및 1400b), 및 노드 오브젝트 간의 관계를 나타내는 링크 오브젝트 (1420) 를 도시한다. 일 실시예에서, DRM 엔진은 제어 프로그램을 실행함으로써 이러한 오브젝트와 관련되는, 예를 들어, 음악을 암호화하고 특정 개인에 대해 해당 노래의 배포를 제한하도록 라이센스와 연관시키는 하나 이상의 이용 패턴을 유발한다. 그러나 이 실시예에서 DRM 엔진은 묵시적이나 명시적으로 이러한 오브젝트 (예를 들어, 노래가 배포될 수도 있는 개인들) 에 첨부되는 시맨틱을 특정하지 않는다.
일 실시예에서 이 시맨틱 콘텍스트는 DRM 프로필이라고 하며 노드 오브젝트 자체의 속성 내에서 정의된다. DRM 프로필은 이러한 엔티티 및 이들이 나타내는 다양한 역할 및 ID의 설명을 포함할 수 있으며 일반적으로 노드 속성 (1401a 및 1401b) 을 사용하여 표현된다. 위에서 설명한 것처럼, 두 노드 (1400a 및 1400b) 간의 링크 (1420) 는 다양한 타입의 시맨틱 관계를 나타낼 수 있다. 예를 들어, 한 노드가 "사용자" 이고 다른 노드가 "디바이스" 인 경우, 링크 (1420) 는 "소유권" 을 나타낼 수 있다. 다른 노드가 "디바이스" 대신 "사용자 그룹" 인 경우, 링크 (1420) 는 "멤버쉽" 을 나타낼 수 있다. 링크 (1420) 는 일 시나리오에서는 단방향, (예를 들어, 동일한 두 노드 사이에 있는 두 개의 링크를 나타내는) 다른 시나리오에서는 양방향이 될 수 있다.
또한, 노드 오브젝트 (1400a 및 1400b) 는 일반적으로 노드의 인가된 부분에 대한 기밀 정보를 제한하기 위해 오브젝트 기밀 보호 비대칭 키 쌍 (예를 들어, 노드 (1400a) 의 비공개 키 (1405a) 및 공개 키 (1406a) 와 노드 (1400b) 의 비공개 키 (1405b) 및 공개 키 (1406b)) 를 가진다. 노드에서 타깃된 기밀 정보는 해당 노드의 기밀 보호 공개 키를 통해 암호화될 것이다. 선택적으로, 콘텐츠 보호 비대칭 키 쌍 (예를 들어, 노드 (1400a) 의 비공개 키 (1403a) 및 공개 키 (1403b) 와 노드 (1400b) 의 비공개 키 (1403b) 및 공개 키 (1403b)) 은, 시스템이 콘텐츠 키 배포를 위해 콘텐츠 키 유도 시스템을 사용하는 경우 링크 오브젝트와 함께 사용될 수 있으며 이에 대해서는 아래 자세히 설명되어 있다. 콘텐츠 아이템 자체는, (노드 (1400a) 의 대칭 키 (1402a) 및 노드 (1400b) 의 키 (1402b) 와 같은) 콘텐츠 보호 대칭 키를 통해 보호될 수 있다.
위에서 언급된 것처럼 일 실시예에서 링크 오브젝트 (예를 들어, 링크 (1420)) 는 노드 간의 관계를 나타낸다. 이러한 관계의 시맨틱은 노드 속성 (예를 들어, 노드 (1400a) 의 도면부호 (1401a) 및 노드 (1400b) 의 도면부호 (1401b)) 에 저장되고, 링크 오브젝트 (예를 들어, 노드 (1400a) 에 대한 노드 레퍼런스 (1422) 및 노드 (1400b) 에 대한 노드 레퍼런스 (1424)) 내로부터 레퍼런싱될 수 있다. 또한 링크 오브젝트는 아래 설명된 것처럼 콘텐츠 키 유도를 위해 링크 오브젝트를 사용할 수 있는 암호 데이터 (예를 들어, 키 유도 정보 (1426)) 를 선택적으로 포함할 수도 있다.
일 실시예에서 링크 오브젝트 자체는 서명된 오브젝트이며, 위의 도 4에서와 같이 그래프에서 유향 에지 (directed edge) 로 나타난다. 일 노드 (예를 들어, 노드 X) 로부터 다른 노드 (예를 들어, 노드 Y) 로의 이러한 유향 에지가 있는 경우, 노드 X로부터 노드 Y까지의 "경로"는 노드 Y가 노드 X로부터 "도달 가능함"을 나타낸다. 경로의 존재는, 다른 DRM 오브젝트에 의해, 예를 들어, 특정 기능을 수행하는 조건으로서 사용될 수 있다. 제어 오브젝트는, 특정 액션이 관련된 콘텐츠 오브젝트에서 수행될 수 있기 전에, 타킷 노드에 도달할 수 있는지 여부를 검사할 수도 있다.
예를 들어, 노드 D 가 콘텐츠 오브젝트에서 "재생" 액션을 수행하길 원하는 디바이스를 나타내는 경우, 이 콘텐츠 오브젝트를 통제하는 제어는 특정 사용자를 나타내는 특정 노드 U 가 노드 D로부터 도달가능한지 여부 (예를 들어, 사용자가 해당 디바이스의 "소유자" 인지 여부) 를 검사하여, 해당 조건이 충족되는 경우에만 "재생" 액션을 수행하도록 허용할 수도 있다. 노드 U 가 도달 가능한지 여부를 결정하기 위해, DRM 엔진은 제어 프로그램을 구동하여 노드 D 와 노드 U 사이에 경로 (예를 들어, 직접 또는 간접 관계) 를 설정할 수 있는 링크 오브젝트의 세트가 있는지 여부를 결정할 수 있다. 위에서 언급된 것처럼 일 실시예에서 DRM 엔진은 관계의 시맨틱을 인식하지 못하며, 단순히 경로의 존재 여부를 결정하여, 호스트 애플리케이션이 이 경로를 조건부 인가로 해석할 수 있게 하고, 보호된 콘텐츠에 대한 액세스를 허용한다.
일 실시예에서, DRM 엔진은 링크 오브젝트를 사용하여 시스템 노드 그래프에서 경로의 존재 여부를 파악하기 전에 링크 오브젝트를 확인한다. 임의의 소정의 시간에 링크 오브젝트의 유효성은 링크 오브젝트를 서명하는데 사용되는 인증서 시스템 (아래 설명됨) 의 특정 특성에 의존할 수도 있다. 예를 들어, 다양한 조건에 기초하여 시간별로 "유효 기간 (lifetime)" 을 제한하거나 철회하거나 재확인할 수도 있다.
또한, 일 실시예에서 링크 오브젝트에 서명할 수 있는 개체, 생성할 수 있는 링크 오브젝트 및 링크 오브젝트의 유효 기간을 통제하는 정책은 DRM 엔진에 의해 직접 처리되지 않는다. 대신, 노드 속성 정보에 영향을 줄 수도 있다. 특정 정책을 시행하는 테스크를 촉진하기 위해, 시스템은 추가 제약조건 검사를 통해 표준 인증서 포맷을 확장하는 방법을 제공할 수도 있다. 이러한 확장을 통해 링크에 서명하는 키에 대한 유효성 제약조건을 인증서에 명시할 수 있으며, 이러한 제약조건 (예를 들어, 링크에 의해 접속된 노드의 타입뿐만 아니라 기타 속성) 은 링크가 유효한 것으로 간주되기 전에 검사될 수 있다.
마지막으로, 일 실시예에서 링크 오브젝트는 키 배포를 위한 노드의 콘텐츠 보호 키를 사용자에게 제공하는 암호 데이터를 포함할 수도 있다. 이러한 암호 데이터는 예를 들어, 메타 데이터와 함께 "수신 (to)" 노드의 콘텐츠 보호 공개 키 및/또는 콘텐츠 보호 대칭 키로 암호화된 "발신 (from)" 노드의 비공개 및/또는 대칭 콘텐츠 보호 키를 포함할 수도 있다. 예를 들어, 특정 정책 하에서 디바이스 노드와 사용자 노드를 링크시키는 링크 오브젝트를 생성할 수 있는 능력이 허여된 엔티티는, 실제로 디바이스를 나타내는 속성을 가진 노드 오브젝트와 사용자를 나타내는 속성을 가진 노드 간에만 링크를 생성한다는 것을 보장하도록 검사할 수도 있다.
3.10. DRM 암호 키
도 15 에 DRM 키 배포 시스템의 예시적인 실시예가 도시되어 있다. 도 15에 도시된 키 배포 시스템의 기본 원칙은, 노드 오브젝트 간의 관계 설정이라는 주요 목표 이외에도 키를 배포하기 위해 링크 오브젝트를 사용한다는 것이다.
위에서 언급된 것처럼, 제어 오브젝트는 요청된 오퍼레이션을 허용할지 여부를 결정하는 제어 프로그램을 포함할 수도 있다. 이 제어 프로그램은 링크 오브젝트의 컬렉션을 통해 특정 노드에 도달할 수 있는지 여부를 결정하도록 검사할 수도 있다. 도 15 에 도시된 키 배포 시스템은, 제어 프로그램을 실행하는 DRM 엔진에 사용할 수 있도록 키 배포를 촉진하기 위해 링크 오브젝트의 컬렉션에 대해 이러한 탐색에 영향을 준다.
일 실시예에서 키 배포 시스템을 사용하는 각 노드 오브젝트는 하나 이상의 키를 가진다. 이러한 키는 콘텐츠 키와 다른 노드의 키 배포 키를 암호화하는 데 사용된다. 동일한 배치에서 사용하도록 생성된 링크 오브젝트는 링크 체인이 DRM 엔진에 의해 프로세싱되는 경우에 키 정보를 유도할 수 있는 일부 암호 데이터 페이로드를 포함한다.
소정의 링크 컬렉션에서 이러한 방법으로 키를 전달하는 노드와 링크의 경우 (예를 들어, 노드 A 에서 노드 B... 노드 Z 로), 노드 A 의 비공개 키에 대한 액세스 권한이 있는 임의의 엔티티는 노드 Z의 비공개 키에 대해서도 액세스 권한이 있다. 노드 Z의 비공개 키에 대한 액세스 권한을 갖는 것은, 이러한 키로 암호화된 임의의 콘텐츠 키에 엔티티 액세스를 제공한다.
키 배포 시스템에 참여하는 노드 오브젝트는 키를 그의 데이터의 일부로 포함한다. 도 15 에 도시된 것처럼 일 실시예에서 각 노드 (1500a, 1500b 및 1500c) 는 세 개의 키를 가진다.
공개 키 Kpub [N] - 공개 키 암호표 (key cipher) 에 대한 공개/비공개 키 쌍의 공개 부분이다. 일 실시예에서 이 키 (각각, 노드 (1500a, 1500b 및 1500c) 에서 도면부호 (1505a, 1505b 및 1505c)) 는 기밀 정보를 암호화하여 바인딩하려는 엔티티가 그 키의 증명서를 확인할 수 있도록 인증서 (아래 설명) 와 함께 제공된다.
비공개 키 Kpriv [N] - 공개/비공개 키 쌍의 비공개 부분이다. 노드를 관리하는 개체는 이 비공개 키 (각각, 노드 (1500a, 1500b 및 1500c) 의 키 (1515a, 1515b 및 1515c)) 의 기밀 유지를 담당한다. 이러한 이유로 인해 일 실시예에서 이 비공개 키는 나머지 노드 정보와 별도로 저장되고 전달된다.
대칭 키 Ks [N] - 이 키는 대칭 암호표 (아래 설명) 와 함께 사용된다. 비공개 키 (각각 노드 (1500a, 1500b 및 1500c) 의 키 (1525a, 1525b 및 1525c)) 는 기밀 사항이기 때문에 노드를 관리하는 엔티티가 기밀 유지를 담당한다.
도 15 에 도시된 키 배포 시스템은 상이한 암호 알고리즘을 사용하여 구현될 수 있지만, 일반적으로, 참여한 엔티티는 지원되는 알고리즘의 세트에 동의할 필요가 있을 것이다. 일 실시예에서 (RSA와 같은) 적어도 하나의 공개 키 암호표 와 (AES와 같은) 하나의 대칭 키 암호표가 지원된다.
다음은 암호와 관련된 함수이다.
Ep ( Kpub [N], M) : "공개 키 암호표를 사용하여 노드 N 의 공개 키 Kpub 로 암호화된 메시지 M"
Dp ( Kpriv [N], M) : "공개 키 암호표를 사용하여 노드 N 의 비공개 키 Kpriv 로 암호 해독된 메시지 M"
Es ( Ks [N], M) : "대칭 키 암호표를 사용하여 노드 N 의 대칭 키 Ks 로 암호화된 메시지 M"
Ds ( Ks [N], M) : "대칭 키 암호표를 사용하여 노드 N 의 대칭 키 Ks 로 암호해독된 메시지 M"
"콘텐츠 키" 를 노드에 대한 타깃으로 지정하는 것은 해당 노드의 비공개 키에 대한 액세스 권한이 있는 엔티티에 해당 키를 사용할 수 있음을 의미한다. 실시예에서 바인딩은 다음 방법 중 하나 또는 모두를 사용하여 키를 암호화함으로써 행해진다.
공개 바인딩: Ep (Kpub[N], CK) 를 포함하는 콘텐츠 키 오브젝트를 생성한다. 대칭 바인딩: Es (Ks[N], CK) 를 포함하는 콘텐츠 키 오브젝트를 생성한다.
이 실시예에서, 수신 엔티티에 관해 덜 까다로운 계산적으로 덜 복잡한 알고리즘을 사용하므로, 가능할 때마다 대칭 바인딩이 사용되는 것이 바람직하다. 그러나 콘텐츠 키 오브젝트를 생성하는 엔티티 (예를 들어, 콘텐츠 패키저) 는 Ks[N] 에 항상 액세스하지 않을 수도 있다. 이러한 경우에는 공개 바인딩을 사용할 수 있는데 그 이유는 Kpub[N] 은 기밀 정보가 아니어서 이용가능하기 때문이다. pub[N] 은, 대개, Kpub[N] 이 동의한 정책에 따라 콘텐츠 키 를 처리하도록 신뢰될 수 있는 노드의 키인지 여부를 결정하기 위해 엔티티에 의해 검사될 수 있는 인증서와 함께 제공되는 콘텐츠 키를 타깃으로 할 필요가 있는 엔티티에서 사용할 수 있을 것이다.
엔티티가 도달 가능한 모든 노드의 배포 키에 액세스할 수 있도록, 일 실시예에서 링크 오브젝트는 "페이로드" 를 포함한다. 이 페이로드는, 링크의 "발신 노드 (from node)" 의 비공개 키에 대한 액세스 권한이 있는 엔티티가 링크의 "수신 노드 (to node)" 의 비공개 키에 대해서도 액세스 권한을 가질 수 있도록 한다. 이러한 방법으로 엔티티는 그의 노드로부터 도달할 수 있는 노드로 타깃된 임의의 콘텐츠 키의 암호를 해독할 수 있다.
따라서, 도 15 에서 노드 1500a 에 노드 1500b 를 링크시키는 링크 (1530a) 는 노드 (1500a) 의 대칭 키 (1515a) 를 사용하거나, (예를 들어, 기밀 문제로 인해) 이 대칭 키를 사용할 수 없는 경우 노드 (1500a) 의 공개 키 (1525a) 를 사용하여 노드 (1500b) 의 비공개 키 (1515b 및 1525b) 를 암호화함으로써 생성되는 페이로드를 포함한다. 마찬가지로, 노드 (1500b) 에 노드 (1500)c 를 링크시키는 링크 (1530b) 는 노드 (1500b) 의 대칭 키 (1515b) 를 사용하거나, 이를 사용할 수 없는 경우 노드 (1500b) 의 공개 키 (1525b) 를 사용하여 노드 (1500c) 의 비공개 키 (1515c 및 1525c) 를 암호화함으로써 생성되는 페이로드를 포함한다.
DRM 엔진이 링크 오브젝트를 프로세싱할 때, 각 링크의 페이로드를 프로세싱하여 그 DRM 엔진이 액세스 권한을 가진 키의 내부 체인 (1550) 을 업데이트한다. 일 실시예에서 노드 A로부터 노드 B로의 링크의 페이로드는 다음 중 하나로 구성된다.
공개 유도 정보
Ep(Kpub[A], {Ks[B], Kpriv[B]})
또는
대칭 도출 정보
Es(Ks[A], {Ks[B], Kpriv[B]})
여기서 {Ks[B], Kpriv[B] 는 Ks[B] 및 Kpriv[B] 를 포함하는 데이터 구성이다.
공개 유도 정보는 노드 B의 비공개 키 Ks[B] 및 Kpriv[B] 를 노드 A의 비공개 키 Kpriv[A]에 대한 액세스 권한을 가진 임의의 엔티티로 전달하는 데 사용된다. 대칭 유도 정보는 노드 B의 비공개 키 Ks[B] 및 Kpriv[B]를 노드 A의 대칭 키 Kpriv[A]에 대한 액세스 권한을 가진 임의의 엔티티로 전달하는 데 사용된다.
따라서 키 체인 (1550) 에 대한 레퍼런스를 통해, 노드 (1500a) 의 비공개 키 (비공개 키 (1515a) 및 대칭 키 (1525a)) 에 대한 액세스 권한을 가진 엔티티는 DRM 엔진이 이러한 비공개 키 (1560) 를 키 체인 (1550) 의 "첫번째 링크" (나머지 키 생성의 시작점) 로서 이용할 수 있게 한다. Scuba 키 (1560) 는 (공개 키 (1505a) 를 통한 공개 바인딩이 사용되었다면, 공개 유도용 비공개 키 (1515a), 또는 대칭 키 (1525a) 를 통한 대칭 바인딩이 사용되었다면, 대칭 유도용 대칭 키 (1525a) 를 사용하여) 링크 (1530a) 내의 콘텐츠 키 오브젝트 (1555a) 를 암호해독하는 데 사용되며, 키 체인 (1550) 의 다음 링크 (1570), 즉, 노드 (1500b) 의 기밀 키 (비공개 키 (1515b) 및 대칭 키 (1525b) 를 생성한다. DRM 엔진은 이러한 키 (1570) 를 차례로 사용하여 (공개 키 (1505b) 를 통한 공개 바인딩이 사용되었다면, 공개 유도용 비공개 키 (1515b), 또는 대칭 키 (1525b) 를 통한 대칭 바인딩이 사용되었다면, 대칭 유도용 대칭 키 (1525b) 를 사용하여), 링크 (1530b) 내의 콘텐츠 키 오브젝트 (1555b) 의 암호를 해독하며, 키 체인 (1550) 의 마지막 링크 (1580), 즉, 노드 (1500c) 의 기밀 키 (비공개 키 (1515c) 및 대칭 키 (1525c)) 를 생성한다.
일 실시예에서 DRM 엔진은 임의의 순서로 링크를 프로세싱할 수 있으므로 링크가 프로세싱될 때 키 유도를 수행할 수 없는 경우도 있다 (예를 들어, 해당 링크의 "발신" 노드의 키가 아직 유도되지 않은 경우). 이 경우, 해당 정보를 다시 사용할 수 있게 될 때 (예를 들어, 해당 노드가 "수신" 노드인 위치에서 링크가 프로세싱될 때) 링크가 기억되어 다시 프로세싱된다.
3.11. DRM 인증서
*위에서 언급한 것처럼, 일 실시예에서 인증서는, 해당 키를 사용하여 생성된 디지털 서명에 기초하여 결정을 내리기 전에 암호 키와 관련된 증명서를 검사하는 데 사용된다. 일 실시예에서 유효 기간, 이름 등과 같은 인증서의 표준 엘리먼트로서 일반적으로 사용되는 기존 정보에 영향을 주어 다중 인증서 기술을 지원할 수 있다. 이러한 표준 엘리먼트 이외에도 인증 키의 잠재적인 사용을 제한하도록 추가 제약조건을 인코딩할 수 있다.
일 실시예에서, 키-사용 확장을 인증서-인코딩 프로세스의 일부로서 사용함으로써 이를 달성한다. 이러한 확장에 인코딩된 정보는 DRM 엔진이 특정 오브젝트에 서명된 키가 해당 목적에 사용하도록 인가되었는지 여부를 결정할 수 있게 하는데 사용될 수 있다. 예를 들어, 일부 키는, 링크가 특정 속성을 가진 노드로부터의 링크 및/또는 또 다른 특정 속성을 갖는 노드로의 링크인 해당 링크 오브젝트에만 서명하게 하는 인증서를 가질 수도 있다.
일반적으로, 인증서를 표현하는데 사용되는 기본 기술은 그 인증서의 시맨틱이 링크와 노드와 같은 엘리먼트를 인식하지 못하기 때문에 이러한 제약조건을 표현할 수 없다. 따라서 일 실시예에서, 이러한 특정 제약조건은 기본 인증서의 키 사용 확장으로서 전달되며, "사용 카테고리 (usage category)" 및 해당 "제약조건 프로그램 (constraint program)"이 포함된다.
사용 카테고리는 키가 서명하도록 인가된 오브젝트 타입을 특정한다. 제약조건 프로그램은 콘텍스트에 기초하여 동적인 조건을 표현할 수 있다. 일 실시예에서, 키 사용 확장 표현의 평가가 DRM 엔진으로 위임되지만, 이러한 인증서의 유효성을 확인하도록 요청 받는 검증자 (verifier) 는 관련 시맨틱을 이해할 필요가 있다. 인증서는 해당 프로그램의 실행이 성공적인 결과를 생성하는 경우에만 유효한 것으로 간주된다.
일 실시예에서 제약조건 프로그램의 역할은, 예를 들어, "true" 는 제약조건을 충족함을 나타내고 "false" 는 충족하지 않음을 나타내는 Boolean 값을 반환하는 것이다. 또한, 제어 프로그램은 결정에 도달하는데 사용될 수 있는 일부 콘텍스트 정보에 대한 액세스 권한을 가질 수도 있다. 사용 가능한 콘텍스트 정보는 인증서 검증 요청 시 DRM 엔진의 결정 타입에 의존할 수도 있다. 예를 들어, 링크 오브젝트의 정보를 사용하기 전에, DRM 엔진은 오브젝트에 서명하였던 키의 인증서가 해당 키를 해당 목적에 사용하도록 허용하는지 확인할 수도 있다. 제약조건 프로그램을 실행할 때, DRM 엔진의 환경에는 링크의 속성과 관련된 정보뿐만 아니라 해당 링크가 레퍼런싱하는 노드의 속성을 포함한다.
키 사용 확장에 내장된 제약조건 프로그램은 일 실시예에서 코드 모듈로 인코딩된다 (위에서 설명). 이 코드 모듈은 적어도 하나의 엔트리 포인트 (예를 들어, " EngineName . Certificate .< Category >. Check ") 에서 엑스포트하며, 여기서 Category 는 검사가 필요한 인증서의 카테고리를 나타내는 이름이다. 검증 프로그램에 대한 파라미터는 엔트리 포인트를 호출하기 전에 스택으로 푸시 (push) 된다. 스택으로 전달되는 파라미터의 개수와 타입은 평가되는 인증서 확장의 카테고리에 의존한다.
4. 시스템 오퍼레이션
4.1. 기본 노드 상호작용
DRM 애플리케이션의 컨텍스트에서 실시예를 포함하여 NEMO 시스템의 기본 아키텍처 엘리먼트의 다양한 실시예를 조사하여, 오퍼레이션에서의 NEMO 시스템을 검토하며, 즉, 그 동작은 애플리케이션 특정 기능이 계층화될 수 있는 기반을 달성하는 NEMO 노드 내부 및 노드 간 이벤트의 시퀀스이다.
일 실시예에서 NEMO 노드는 애플리케이션 특정 기능을 호출하기 전에 초기화 및 인가의 프로세스를 거친다. 노드는 먼저 (요청, 등록 통보 등을 통해) 원하는 서비스를 검색한 이후 (예를 들어, 서비스가 신뢰할 수 있고 관련 서비스 제공자 정책을 충족하도록 설정함으로써) 해당 서비스를 사용하기 위해 인가를 획득한다.
이 프로세스는 도 16 에 도시되어 있으며, (이 실시예의 경우 서비스 제공 노드 (1610) 와 인가 노드 (1620) 간에 공유되는 기능을 갖는) 서비스 제공자 (1600) 와 서비스 요청자 (1630) (예를 들어, 서비스의 클라이언트 소비자) 간의 기본 상호작용을 보여준다. 이 상호작용은 직접적일 필요는 없다. 서비스 요청자 (1630) 와 서비스 제공자 (1600) 사이의 경로에 임의 개수의 중개 노드 (1625) 가 배치될 수도 있다. 이 프로세스의 기본 단계는 아래 자세히 설명되어 있으며 클라이언트 서비스 요청자 (1630) 와 서비스 제공자 (1600) 모두의 관점에서 논의된다.
서비스 요청자 (1630) 의 관점에서 도 16에 도시된 이벤트의 논리적 흐름은 다음과 같다.
서비스 디스커버리 - 일 실시예에서 서비스 요청자 (1630) 는 서비스 디스커버리 요청을 시작하여 원하는 서비스를 제공하는 임의의 NEMO-가능 노드의 위치를 확인하고 관련 서비스 인터페이스에 대한 액세스를 지원하는 서비스 바인딩과 관련된 정보를 획득한다. 서비스 요청자 (1630) 는 검색된 서비스에 대한 정보를 캐시하는 것을 선택할 수도 있다. NEMO 노드 간의 서비스 디스커버리를 위한 인터페이스/메커니즘이 NEMO 노드가 구현하고 공개시키는 또 다른 서비스에 불과하다는 점을 유의해야 한다. 서비스 디스커버리 프로세스는 아래에서 자세히 설명되며, 등록된 서비스 요청자로의 서비스 제공자에 의한 통보와 같은 다른 형태의 통신을 포함한다.
*서비스 바인딩 선택 - 후보 서비스-제공 노드가 발견되면, 요청 노드는 특정 서비스 바인딩에 기초하여 하나 이상의 서비스-제공 노드를 타깃 (요청을 디스패치) 하는 것을 선택할 수 있다.
서비스 제공자와의 수용 가능한 신뢰받는 관계 협의 - 일 실시예에서 두 노드가 안전한 방식으로 통신할 수 있기 전에, 이러한 목적을 위해 신뢰 관계를 달성할 수 있어야 한다. 이것은, 아이덴티티를 결정하는데 사용될 수도 있는 무결성-보호 엔벨로프의 호환이 가능한 신뢰 증명서 (예를 들어, X.500 인증서, 토큰 등) 의 교환을 포함할 수도 있으며, 및/또는 양측이 신뢰하는 인증서에 기초하여 SSL 채널과 같은 보안 채널 확립을 포함할 수도 있다. 일부 경우에 이러한 증명서의 교환 및 협의는 서비스 인터페이스 바인딩의 묵시적 속성 (예를 들어, 인터페이스가 웹 서비스로서 공개될 때 WS-I XML 프로토콜이 사용되는 경우의 WS-보안 또는 잘 알려진 두 노드 간의 SSL 요청) 이 될 수도 있다. 다른 경우에는 신뢰 증명서의 교환 및 협의가 명시적으로 별도의 단계가 될 수도 있다. NEMO는 노드가 통신을 위해 신뢰받는 채널을 확립할 수 있는 유연한 프레임워크 및 표준을 제공한다. 노드의 특성 및 상호작용과 관련된 서비스의 특성에 기초하여, 어느 증명서가 다른 NEMO 노드와 상호작용하는데 충분한지를 결정하고 소정의 노드를 신뢰하는지 여부를 결정하는 것은 소정의 노드에 달려있다. 일 실시예에서 NEMO 프레임워크는 특히 보안-관련 데이터 타입 및 프로토콜 영역에서 기존 및 최신 표준에 영향을 준다. 예를 들어, 일 실시예에서 프레임워크는, 서비스 요청자가 서비스를 호출하려고 할 때 서비스 제공자에게 제공하는 두 개의 증명서 (증거) 를 설명하도록 SAML 을 사용하는 것뿐만 아니라, 인가 쿼리 및 인가 응답의 표현 방식으로 SAML 을 사용하는 것을 지원한다.
요청 메시지의 생성 - 다음 단계는 요청 노드 (1630) 가 원하는 서비스에 대응하는 적절한 요청 메시지를 생성하는 것이다. 이 오퍼레이션은 서비스 액세스 포인트에 의해 숨겨질 수도 있다. 위에서 언급한 것처럼 서비스 액세스 포인트는 NEMO 프레임워크에서 서비스 제공자와의 상호작용을 위한 추상화와 인터페이스를 제공하고, 서비스 메시지 맵핑에 대한 원시 인터페이스, 오브젝트 직렬화/직렬화 해제 (serialization/deserialization), 호환가능 메시지 포맷의 협의, 전송 메커니즘 또는 메시지 라우팅 문제 등과 같은 특정 서비스 호출 문제를 숨길 수도 있다.
요청 디스패치 - 요청 메시지가 생성되면, 타깃된 서비스-제공 노드(들), 예를 들어 노드 (1610) 로 디스패치된다. 요청의 통신 양식은 서비스 바인딩 및/또는 요청 클라이언트의 선호도에 기초하여 동기/비동기 RPC 양식이나 메시지-지향일 수 있다. 서비스와의 상호작용은 서비스 메시지 전달 및 프로세싱에 의해 직접 수행되거나 NEMO 서비스 액세스 포인트 전반에 걸친 더 원시적인 인터페이스를 통해 수행될 수 있다.
응답 메시지(들) 수신 - 요청을 디스패치한 후에 요청 노드 (1610) 는 하나 이상의 응답을 회신으로 수신한다. 서비스 인터페이스 바인딩의 사양 및 요청 노드 (1610) 의 선호도에 의존하여, RPC-식 응답 또는 통지 메시지를 포함하는 회신이 다양한 방식으로 반환될 수 있다. 위에서 언급한 것처럼 요청 및 회신은, 라우팅, 신뢰 협의, 대조 및 상관 기능 등을 포함한 다수의 서비스를 자체적으로 제공할 수도 있는 다른 중개 노드 (1625) 를 통해 그 요청 및 회신의 타깃 노드로 라우팅될 수 있다. 이 실시예의 모든 서비스는, 동일한 일관된 프레임워크 내에서 설명, 검색, 인가, 바인딩, 및 상호작용을 수행하는 "표준" NEMO 서비스이다. 서비스 액세스 포인트는 노드로부터의 메시지-레벨 추상화를 숨길 수도 있다. 예를 들어, 노드의 관점에서 서비스 호출은 간단한 고정 파라미터의 세트를 사용하는 표준 함수 호출처럼 보일 수도 있다.
응답 재협상 신뢰 시맨틱 확인 - 일 실시예에서 요청 노드 (1630) 는 응답 메시지가 요청 노드와 서비스 제공자 노드 (1610) 간에 협의된 신뢰 시맨틱을 준수한다는 것을 보장하기 위해 그 응답 메시지를 확인한다. 이 로직은 일반적으로 서비스 액세스 포인트 내에서 완전히 캡슐화된다.
메시지 페이로드 프로세싱 - 마지막으로, (애플리케이션-특정) 메시지 페이로드 타입과 콘텐츠에 기초하여 적절한 프로세싱이 적용된다.
다음은 서비스 제공자 (1600) 의 관점에서 이벤트의 (다소 유사한) 논리적 흐름이다.
서비스 지원 결정 - 우선 요청된 서비스가 지원되는지 여부를 결정한다. 일 실시예에서, NEMO 프레임워크는 서비스 인터페이스가 엔트리 포인트로서 서비스에 맵핑하는 방법의 양식이나 입도를 지정하지 않는다. 가장 단순한 경우, 서비스 인터페이스는 소정의 서비스에 명백하게 맵핑하고, 해당 인터페이스를 바인딩하고 호출하는 액션은 서비스를 의한 지원을 구성한다. 그러나, 단일 서비스 인터페이스는 다양한 타입의 요청을 처리하거나, 소정의 서비스 타입은 노드가 원하는 특정 기능을 실제로 지원하는지에 대한 결정을 내리기 전에 샘플링될 필요가 있는 부가적인 속성을 포함하는 경우일 수도 있다.
서비스 요청자 ( Service Requester ) 와 허용가능한 신뢰 관계를 협의 - 일부 경우, 서비스 제공자 (1600) 가 요청 노드 (1630) 를 신뢰하는지, 그리고 신뢰 받는 통신 채널을 확립할지 여부를 결정하는 것이 필요할 수도 있다. 이 프로세스는 앞에서 상세히 설명하고 있다.
서비스 인터페이스로의 액세스를 승인하는 노드에 대한 디스패치 승인 요청 - 그 후, 서비스 제공 노드 (1610) 는 요청 노드 (1630) 가 서비스 액세스를 승인 받았는지 또는 권한이 있는지 여부를 결정하며, 그럴 경우의 조건을 결정한다. 이 결정은 로컬 정보, 또는 원시적으로 지원되는 인가 결정 메커니즘에 기초할 수도 있다. 로컬 지원이 되지 않는 경우, 서비스 제공 노드 (1610) 는, 요청 노드 (1610) 가 요청된 서비스에 대한 액세스를 인가받았는지를 결정하기 위해, 자신의 서비스를 통제하는 알려진 NEMO 인가 서비스 제공자 (예를 들어, 승인 노드 (1620)) 로 인가 요청(들)을 디스패치 할 수도 있다. 많은 상황에서, 승인 노드 (1620) 및 서비스 제공 노드 (1610) 는 동일한 엔터티일 것이며, 이 경우 승인 요청의 디스패칭 및 프로세싱은 C 함수 엔트리 포인트와 같은 가벼운 서비스 인터페이스 바인딩을 통해 호출되는 로컬 오퍼레이션일 것이다. 그러나, 다시 말하면, 이러한 메커니즘 자체가 NEMO 서비스이기 때문에, 완전 분산형 구현도 가능하다. 승인 요청은 NEMO 노드 자체와 관련된 식별 정보 및/또는 속성, 또는 노드와 관련된 사용자 및/또는 디바이스와 관련된 정보를 레퍼런싱할 수 있다.
인가 응답의 수신시의 메시지 프로세싱 - 요청 노드 (1630) 가 승인을 받은 경우, 승인 응답이 수신되는 즉시, 서비스 제공자 (1600) 는 필요한 프로세싱을 실행하여 요청을 수행한다. 이와 달리, 요청 노드 (1630) 가 승인을 받지 못한 경우, 적절한 "인가 거부" 응답 메시지가 생성될 수 있다.
반환 응답 메시지 - 그 후, RPC-식 응답이나 통지 메시지를 포함하는 여러 통신 방식 중 하나의 방식을 이용하여, 서비스 인터페이스 바인딩 및 요청 노드 (1630) 의 선호도에 기초하여 응답이 반환된다. 다시 한번, 위에서 설명한 것처럼, 요청 및 회신은 다른 중계 노드 (1625) 를 통해 그들의 타깃 노드로 라우팅 될 수 있으며, 그 중계 노드 (1625) 는 라우팅, 신뢰 협의, 대조 및 상관 기능 등을 포함하는 다수의 서비스를 자체적으로 제공할 수도 있다. 중계 노드 (1625) 에 의해 제공되는 필수 서비스의 예는, 요청 노드 (1630) 가 알고 있는 방식으로 메시지를 전달할 수 있는 통지 프로세싱 노드로의 전달일 수도 있다. 예를 들어, 쿠폰 서비스가 요청 노드 (1630) 의 이해관계에 대해 알고 있는 경우, 쿠폰을 응답과 관련시키는 쿠폰 서비스가 "부가 가치" 서비스의 예일 수도 있다.
4. 2. 통지
위에서 설명한 것처럼, 비동기 및 동기 RPC-식 통신 패턴 양자에 더해, 클라이언트가 구체적으로 요청을 개시한 다음, 응답을 기다리거나 티켓 회수를 통해 응답을 정기적으로 점검하는 경우, 일부 NEMO 실시예는 통지 개념에 기초한 순수한 메시징 타입의 통신 패턴을 또한 지원한다. 다음과 같은 엘리먼트는 일 실시예에서 이러한 통지의 개념을 지원하는 데이터 및 메시지 타입을 구성한다.
통지 - 이해관계가 있는 엔드포인트 노드에서 타깃된 지정 타입의 페이로드를 포함한 메시지.
통지 이해관계 - 소정의 노드가 소정의 통지를 수용할지 여부를 결정하는데 사용되는 기준. 통지 이해관계에는 특정 타입의 아이덴티티 (예를 들어, 노드 ID, 사용자 ID 등), 이벤트 (예를 들어, 노드 디스커버리, 서비스 디스커버리 등), 동호인 그룹 (예를 들어, 새로운 재즈 클럽 콘텐츠), 또는 일반적인 카테고리 (예를 들어, 광고) 에 기초한 이해관계가 포함될 수도 있다.
통지 페이로드 - 타이핑된 통지 콘텐츠. 페이로드 타입의 범위에는 단순한 단문 메시지에서부터 더욱 복잡한 오브젝트까지 포함될 수도 있다.
통지 처리기 서비스 인터페이스 - 통지가 수신될 수도 있는 서비스 제공자의 인터페이스 타입. 또한, 서비스 제공업자는 수용가능한 페이로드 타입뿐만 아니라, 인터페이스와 관련된 통지 이해관계를 설명한다. 이러한 인터페이스를 지원하는 노드는 통지의 최종 수신지가 되거나, 중개 프로세싱 엔드포인트일 수도 있다.
통지 프로세서 서비스 - 이해관계가 있는 노드에 통지를 매칭시킬 수 있는 서비스로서, 일부 정책에 기초하여 통지를 전달한다.
통지 발신자 - 이해관계가 있는 일련의 노드 및/또는 일련의 중개 통지 프로세싱 노드의 중개 세트에 타깃된 통지를 전송하는 노드.
통지, 통지 이해관계 및 통지 페이로드는 확장성을 갖추는 것이 바람직하다. 이외에도, 통지 처리기 서비스 인터페이스는 임의의 다른 NEMO 서비스 인터페이스와 동일한 인가 프로세스에 영향을 받는 것이 바람직하다. 따라서, 소정의 통지가 이해관계 및 수용가능한 페이로드의 관점에서 매칭할 수 있더라도, 통지의 중개 전송기 또는 발신원과 관계되는 일부 관련 인터페이스 정책에 기초하여, 노드가 통지의 수용을 거부할 수도 있다.
도 17a 는 통지 처리기 서비스를 지원하는 노드 (1720) 를 검색 (1715) 하는 일련의 통지 프로세싱 노드 (1710) 를 나타낸 것이다. 그것의 서비스 설명의 일부로서, 노드 (1720) 는 수용가능한 통지 페이로드 타입뿐만 아니라 그 노드의 통지 이해관계도 지정한다.
도 17b 는 통지가 전달되는 방법을 나타낸 것이다. 임의의 노드는 통지의 프로세서 뿐만 아니라 발신원일 수 있으며, 통지 처리기 서비스를 지원하는 노드 (1720) 에 통지를 전달하는 일을 담당할 수 있다. 따라서, 노드 (1710a) 는 발신 통지 프로세싱 노드일 수 있고, 또는 해당 기능이 노드 (1710c; 통지의 발신원) 와 노드 (1710b; 통지 프로세서) 사이에서 분리될 수도 있다. 또 다른 노드 (미도시) 가 통지의 전달을 담당할 수도 있다. 외부 통지-발신 노드로부터의 통지를 처리하기로 선택한 통지 프로세서는 효율성 향상을 위해, 마이크로소프트 통지 서비스 (Microsoft Notification Services) 와 같은 상용 통지-프로세싱 엔진과 통합할 수도 있다.
4. 3. 서비스 디스커버리
NEMO 서비스를 사용하기 위해, NEMO 노드는 우선 자신에 대해 파악할 필요가 있다. 도 18a 내지 도 18c 에 도시되어 있는 NEMO 실시예는 3개의 동적 디스커버리 메커니즘을 지원한다.
클라이언트 구동 - (도 18a 의) NEMO 노드 (1810a) 는 "서비스 쿼리" 서비스 인터페이스 (1815a) 를 지원하는 일련의 타깃 노드 (예를 들어, 도면부호 (1820a)) 에 대해, 그 타깃 노드가 특정된 일련의 서비스를 지원하는지를 묻는 요청을 명시적으로 전송한다. 요청 노드 (1810a) 가 인가를 받으면, 서비스 제공 노드 (1820a) 는 요청된 인터페이스 및 관련 서비스 인터페이스 바인딩 지원 여부를 나타내는 응답을 전송할 것이다. 이는, 노드가 임의의 서비스를 공개시키면 그 노드가 지원할 더 통상적인 인터페이스 중 하나가 된다.
노드 등록 - (도 18b 의) NEMO 노드 (1810b) 는 자신의 지원 서비스를 포함하는 자신에 대한 설명을 서비스 제공 노드 (1820b) 와 같은 다른 노드에 등록할 수 있다. 노드가 이 인터페이스 (1815b) 를 지원하면, 언제든지 다른 노드로부터의 요청을 수용한 다음, 일부 정책에 기초하여 해당 설명을 캐싱한다. 그 후, 이러한 노드 설명은, 캐싱된 설명을 보유하고 있는 노드로 타깃된 서비스 쿼리를 실행하는 다른 노드에 의한 또는 수신 노드에 의한 직접적인 이용이 가능해진다. 또한, P2P 등록에 대한 대안으로, 노드는, 위치확인 서비스를 위한 UDDI (Universal Discovery, Description and Integration) 표준 레지스트리와 같은 공개 레지스트리를 이용할 수 있다.
이벤트-기반 - (도 18c 의 노드 (1810c) 와 같은) 노드는, 상태 변화를 나타내는 (예를 들어, 노드 활성/가용 상태) 이해관계가 있는 노드 (1820c; "통지를 인식" 하고 있고 이미 이해관계를 표시했음) 또는 특정 서비스 지원 사실을 광고하는 노드에 통지 (1815c) 를 전송한다. 통지 (1815c) 는 노드 및 그의 서비스에 대한 완전한 설명, 또는 이벤트와 관련된 노드의 ID 만 포함할 수 있다. 그 후, 이해관계가 있는 노드는 통지의 수용 및 프로세싱을 선택할 수도 있다.
4. 4. 서비스 인가 및 신뢰 설정
위에서 설명한 것처럼, 일 실시예에서 NEMO 노드가 요청 서비스에 대한 액세스를 허용하기 전에, 그 노드는 그 요청 노드가 해당 서비스에 대한 액세스를 허가할지 여부 및 그 조건이 무엇인지를 먼저 결정한다. 액세스 허가는 서비스 요청자와 서비스 제공자 사이의 상호작용을 위한 신뢰 콘텍스트에 기초한다. 아래에서 논의되는 것처럼, 노드에서 신뢰를 확립한다 하더라도, 서비스 제공 노드는 특정 서비스 또는 서비스 세트에 대한 액세스를 허가하기 전에 요청 노드가 특정된 정책을 만족시키도록 요구할 수도 있다.
일 실시예에서, NEMO 는, 서로 신뢰하는지를 결정할 때, 임의의 노드 세트에 의해 이용되는 특정 요구사항, 기준, 또는 의사결정 논리를 지정하지 않는다. 기본적으로, 신뢰 시맨틱은 각 노드마다 다를 수도 있다. 그 대신, NEMO 는 노드가 상호 허용되는 신뢰 관계의 협의가 가능하게 하는 설비의 표준 세트를 제공한다. 노드 사이의 신뢰 결정 및 설정 시, NEMO 는 노드 사이에 증명서 (및/또는 관련 정보) 가 교환되도록 지원하며, 그 증명서는 신뢰 콘텍스트 설정에 사용될 수 있다. 이와 같은 신뢰-관련 증명서는 다양하고 상이한 모델을 사용하여 교환될 수도 있으며, 그 예는 다음과 같다.
서비스-바인딩 속성 - 신뢰 증명서가 서비스 인터페이스 바인딩의 일부로서 묵시적으로 교환되는 모델. 예를 들어, (도 19a 의) 노드 (1920a) 가 SSL을 통한 HTTP Post 의 포맷이나, WS-Security XML 서명을 요구하는 웹 서비스로서 서비스를 공개시키는 경우, 이 서비스 바인딩의 실제 속성은 필요한 모든 신뢰-관련 증명서 (1915a) 을 요청 노드 (1910a) 로 전달할 수도 있다.
요청/응답 속성 - 메시지 (1915b) 속성으로서의 증명서를 선택적으로 포함하는, 요청 노드 (1910b) 와 서비스 제공 노드 (1920b) 사이에서 WSDL 요청 및 응답 메시지 (도 19b 참조) 를 통해 신뢰 증명서가 교환되는 모델. 예를 들어, 디지털 인증서는 요청 및 응답 메시지에 첨부되어 함께 진행될 수도 있고, 신뢰 관계 형성에 사용될 수 있다.
명시적 교환 - 신뢰 증명서가, 소정의 노드가 포함한 신뢰 증명서와 관련된 정보의 쿼리를 허용하는 도 19c 의 서비스-제공자 인터페이스 (1915c) 를 통해 명시적으로 교환되는 모델. 이것은 일반적으로 가장 복잡한 모델로서, 요청 노드 (1910c) 와 서비스 제공 노드 (1920c) 사이에서 증명서를 교환하기 위해 별도의 왕복 세션을 일반적으로 요구한다. 서비스 인터페이스 바인딩 자체는 증명서의 명시적 교환을 위해 상호 수용가능한 신뢰 채널을 제공한다.
위와 같은 기본 모델 이외에도, NEMO 는 상이한 접근법의 결합도 지원할 수 있다. 예를 들어, 세미-신뢰되는 (semi-trusted) 서비스 바인딩과 관련된 통신 채널은 다른 보안-관련 증명서의 교환을 더욱 직접적으로 부트스트랩 (bootstrap) 하는데 사용될 수도 있거나, 보안-관련 증명서 (본질적인 무결성 (inherent integrity) 의 일부 타입을 가질 수 있음) 를 직접 교환하고, 그 증명서를 사용하여 일부 서비스 인터페이스 바인딩과 관련된 보안 통신 채널을 확립할 수도 있다.
위에서 설명한 것처럼, 신뢰 모델 시맨틱 및 신뢰 설정 프로세스는 엔티티마다 달라질 수도 있다. 일부 상황에서, 노드 사이의 상호 신뢰가 요구되지 않을 수도 있다. 이러한 타입의 동적인 이기종 환경은 상이한 엔티티가 콘텍스트-민감 신뢰 시맨틱을 협의할 수 있도록 공통적인 설비 세트를 제공하는 유연한 모델을 요청한다.
4. 5. 정책관리형 ( Policy - Managed ) 액세스
(위에서 설명한 것과 같은), 일 실시예에서, 서비스 제공 노드는, 요청 노드가 리소스에 액세스하도록 허용하기 전에, 신뢰 콘텍스트의 설정을 요구하는 것 이외에 요청 노드가 해당 리소스와 관련된 정책을 만족하도록 요구할 수도 있다. 이러한 목적을 위해 사용된 정책 결정 메커니즘은 로컬 및/또는 비공개일 수도 있다. 일 실시예에서, NEMO 는 이러한 기능을 지원하는 일관성 있고 유연한 메커니즘을 제공한다.
서비스 설명의 일부로서, 특정 NEMO 노드를 "인가" 서비스 제공자로 지정하는 것도 가능하다. 일 실시예에서, 인가 서비스 제공 노드는 인가 쿼리 요청의 처리 및 응답을 위한 표준 서비스를 구현한다. 서비스 인터페이스에 대한 액세스를 허용하기 전에, 타깃 서비스 제공자는 해당 서비스를 위한 임의의 인가 노드에 "인가" 쿼리 요청을 디스패치하고, 하나 이상의 해당 노드 (또는 사전에-특정된 노드의 조합) 가 액세스가 허가되었다고 응답하는 경우에 한해, 액세스가 허용된다.
도 20 에 도시된 대로, 요청 노드 (2010) 는 특정 서비스에 대한 초기 요청을 포함하는 메시지 (2015) 를 서비스 제공 노드 (2020) 와 교환한다. 그 후, 서비스 제공 노드 (2020) 는 요청 노드 (2010) 가 해당 서비스를 호출하도록 인가되었는지 여부를 결정하고, 그에 따라 해당 노드 (2030) 에 대한 초기 인가 요청을 포함하는 요청된 서비스에 대한 액세스를 관리하는 인가 노드 (2025) 와 인가 메시지 (2025) 를 교환한다. 그 후, 수신되는 응답에 기초하여, 서비스 제공 노드 (2020) 는 이용가능한 서비스 응답을 프로세싱 및 반환하거나 액세스 거부 응답을 반환한다.
따라서, 인가 서비스는 NEMO 노드가 정책 결정 포인트 (PDP) 의 역할에 참여하도록 허용한다. 바람직한 실시예에서, NEMO 는 중립적인 정책 관리 시스템이 되며, 인가 노드가 인가 쿼리에 기초하여 인가에 대한 결정에 도달하는 방법을 지정하지 않는다. 하지만, 상호운용을 위해, 인가 요청 및 응답이 일정한 표준을 고수하고, 페이로드를 유연하게 전송하기 위한 충분한 확장성을 갖춤으로써 상이한 정책 관리 시스템의 콘텍스트에서 상이한 타입의 인가 쿼리 요청을 수용할 수 있는 편이 바람직하다. 일 실시예에서는, 적어도 두 가지 인가 포맷, 즉, (1) 입력, 단순 요청자 ID, 리소스 ID 및/또는 액션 ID 와 같은 최소 공통 분모 기준 등을 이용하는 매우 단순한 엔벨로프를 제공하는 단순한 포맷, 및 (2) 인가 쿼리를 엔벨로프 하기 위한 표준 "SAML (Security Assertion Markup Language)" 포맷에 대해 지원된다.
일 실시예에서, 인가 노드는 적어도 사전에 정의된 "단순" 포맷을 인식 및 지원하여야 하며, 인가 노드에 존재하는 원시 정책 표현 포맷을 막론하고 그 포맷을 그 표현에 맵핑할 수 있어야 한다. 다른 포맷의 경우, 인가 노드가 "인가" 쿼리 요청의 페이로드를 처리하지 못하거나 이해하지 못하게 되면, 적절한 오류 응답을 반환한다. 확장에는 노드가 인가 쿼리의 허용가능한 포맷에 관해 협의를 할 수 있는 능력과, 노드가 소정의 인가 서비스 제공자 노드에 의해 지원되는 포맷이 무엇인지를 결정하기 위해 쿼리를 수행할 수 있는 능력이 포함될 수도 있다.
4. 6. 기본적인 DRM 노드 상호작용
DRM 애플리케이션의 특정 NEMO 인스턴스로 되돌아가면, 도 21 은 DRM 노드 (또는 버텍스 (Vertex)) 그래프인데, 이 그래프는 DRM 노드 사이의 상호작용뿐 아니라 그 노드의 관계를 도시해 주는 역할을 한다. 휴대용 디바이스 (2110) 가 콘텐츠 재생 디바이스 (예를 들어, iPodl) 인 시나리오를 가정한다. Nipl은 이 디바이스를 나타내는 노드이다. Kipl 은 Nipl 과 관련된 콘텐츠 암호화 키이다. "사용자" 는 휴대용 디바이스의 소유자이며, Ng 는 그 사용자를 나타내는 노드이다. Kg 는 Ng 와 관련된 콘텐츠 암호화 키이다.
PubLib 는 공용 라이브러리이다. Npl 은 이 라이브러리의 회원을 나타내고, Kpl 은 Npl 과 관련된 콘텐츠 암호화 키이다. ACME 는 ACME 사에서 제조한 모든 음악 플레이어를 나타낸다. Namp 는 디바이스의 클래스를 나타내고, Kamp 는 그 그룹과 관련된 콘텐츠 암호화 키이다.
Ll 은 Nipl 으로부터 Ng 까지의 링크이며, 이는 휴대용 디바이스가 사용자에 속한다 (및 사용자의 키에 대한 액세스를 갖는다) 는 것을 의미한다. L2 는 Ng 로부터 Npl 까지의 링크이며, 이는 사용자가 공용 라이브러리의 구성원이고 라이브러리 키에 대한 액세스가 가능함을 의미한다. L3 는 Nipl 으로부터 Namp 까지의 링크이며, 휴대용 디바이스가 ACME 디바이스 (이 회사는 키를 보유하지 않기 때문에 멤버쉽만 있음) 임을 의미한다. L4 는 Npl 으로부터 Napl 까지의 링크이며, 그 Napl 은 모든 공용 라이브러리를 나타내는 노드이고 그룹 전체 키에 대한 액세스가 가능하다.
C1 은 공용 라이브러리의 구성원이 이용할 수 있는 영화 파일이다. Kcl 은 C1 을 암호화하는 데 사용되는 키이다. GB[C1] (미도시) 는 Cl에 대한 통제 정보 (예를 들어, 콘텐츠에 대한 액세스를 통제하는데 이용되는 규칙 및 관련 정보) 이다. E(a, b) 는 'b' 가 키 'a' 로 암호화되었음을 의미한다.
예시 목적을 위해, 디바이스가, (a) 라이브러리의 구성원인 자에게 속하고, (b) ACME 에서 제작된 것인 한, 디바이스가 콘텐츠 Cl 을 재생할 수 있는 규칙을 설정하는 것이 바람직하다고 가정한다.
콘텐츠 C1 은 Kcl 을 이용하여 암호화된다. 규칙 프로그램뿐 아니라 암호화된 콘텐츠 키 RK[C1] = E(Kamp, E(Kpl, Kcl)) 도 생성된다. 규칙 프로그램 및 RK[C1] 모두 콘텐츠 GB[C1] 을 위한 통제 블록에 포함될 수 있다.
휴대용 디바이스는 C1 및 GB[C1] 을 수신한다. 예를 들어, 이 두 가지는 동일한 파일에서 패키지로 제공될 수도 있고, 별도로 수신될 수도 있다. 사용자가 디바이스를 구입한 다음 자신의 디바이스를 먼저 설치하면, 휴대용 디바이스는 L1 을 수신한다. 사용자가 공용 라이브러리에 가입비를 지불하면 휴대용 디바이스는 L2 를 수신한다. 휴대용 디바이스가 제작되면 (예를 들어, L3 가 내장형인 경우) L3 을 수신한다.
L1, L2 및 L3 으로부터, 휴대용 디바이스는 Nipl 이 Ng (L1), Npl (L1 + L2), 및 Namp (L3) 까지의 그래프 경로를 갖추고 있는지 점검할 수 있다. 휴대용 디바이스에서 Cl 을 재생하길 원한다. 휴대용 디바이스는 GB[C1] 에서 발견된 규칙을 실행한다. 이 규칙은 Nipl 이 실제로 ACME 디바이스 (Namp 로의 경로) 인지, 그리고 공용 라이브러리 (Npl 로의 경로) 의 구성원에 속하는지를 점검할 수 있다. 이에 따라, 규칙은 "예 (yes)" 및 주문 목록 (Namp, Npl) 을 반환한다.
휴대용 디바이스는 Ll 을 사용하여 Kg 를 계산한 다음, L2 를 사용하여 Kg 로부터 Kpl 을 계산한다. 또한, 휴대용 디바이스는 L3 를 사용하여 Kamp 를 계산한다. 휴대용 디바이스는 GB[C1] 에서 발견되는 RK[C1] 에 Kpl 및 Kamp 를 적용하고, Kcl 을 계산한다. 그 다음에는 Kcl 을 사용하여, Cl 을 암호해독 및 재생한다.
상기 예시에서처럼 노드 키가 대칭 키인 경우, 콘텐츠 패키저는 콘텐츠를 "바인딩" 하고자 하는 노드의 키에 액세스할 필요가 있다. 이는, 패키저를 나타내는 노드를 생성하고, 이 노드와, 규칙을 바인딩하고자 하는 노드 사이에 링크를 생성함으로써 달성될 수 있다. 또한, 이는, 예를 들어 서비스를 통해 "대역외 (out of band)" 로 달성될 수 있다. 하지만, 일부 상황에서, 대칭 키의 사용이 가능하지 않거나 실용적이지 못할 수도 있다. 이러한 경우에는, 정보를 공유되지 않은 상태에서 바인딩을 할 필요가 있는 노드에 하나의 키 쌍을 할당하는 것이 가능하다. 이때, 패키저는 콘텐츠 키를 타깃 노드의 공개 키로 암호화시킴으로써, 그 콘텐츠 키를 노드에 바인딩한다. 암호해독 키를 획득하기 위해, 클라이언트는 해당 노드와의 링크를 통해 노드의 비공개 키에 액세스를 할 수도 있다.
가장 일반적인 경우에, 규칙에 사용되는 노드 및 콘텐츠 암호화 키 계산에 사용되는 노드가 동일할 필요는 없다. 콘텐츠를 통제하는 규칙과 콘텐츠를 암호화하는 데 이용되는 키 사이에는 강력한 관계가 존재하기 때문에 동일한 노드가 사용되는 것이 자연스러우나, 필수적인 것은 아니다. 일부 시스템에서, 일부 노드는 멤버쉽 조건을 표현하는데 사용되지 않는 콘텐츠 보호 키에 대해 사용될 수도 있으며, 그 반대가 될 수도 있고, 일부 경우, 2 개의 서로 다른 노드 그래프가 각각 규칙 및 콘텐츠 보호용으로 사용될 수도 있다. 예를 들어, 그룹 Npl 의 모든 구성원은 콘텐츠 Cl 에 액세스를 할 수 있지만, 콘텐츠 키 Kcl 은 Kpl 에 의해 보호되는 것이 아니라, 그 대신 노드 Napl 의 노드 키 Kapl 에 의해 보호될 수도 있는 것으로 규칙에서 규정할 수도 있으며, 그 노드 키 Kapl은 단순히 Npl 이 아닌 모든 공용 라이브러리를 나타낸다. 아니면, 규칙에서 사용자가 Namp 의 구성원일 필요는 있으나, 콘텐츠 암호화 키는 Npl 에만 바인딩 되는 것으로 규정할 수도 있다.
4. 7. DRM 가상 머신 ( VM ) 의 오퍼레이션
상기 도 21 과 관련한 설명에서는 콘텐츠 통제 정책의 형성 및 시행을 포함하는, 상위 (노드 및 링크) 레벨에서 DRM 시스템의 오퍼레이션을 설명하였다. 도 22 는 해당 콘텐츠 통제 정책의 형성 및 시행을 구현하는 DRM 엔진의 VM 의 예시적인 코드 모듈 (2200) 을 도시한다.
도 22 에서 설명되고 있는 예시적인 코드 모듈 (2200) 의 네 가지 주요 엘리먼트는 다음을 포함한다.
pkCM Atom : pkCM Atom (2210) 은 최상위-레벨 코드 모듈 Atom 이다. 이것은, 하위-Atom 시퀀스를 포함한다.
pkDS Atom : pkDS Atom (2220) 은 데이터 세그먼트로 로딩될 수 있는 메모리 이미지를 포함한다. Atom 의 페이로드는 옥텟 값의 로우 시퀀스 (raw sequence) 이다.
pkCS Atom : pkCS Atom (2230) 은 코드 세그먼트로 로딩될 수 있는 메모리 이미지를 포함한다. Atom 의 페이로드는 옥텟 값의 로우 시퀀스이다.
pkEX Atom : pkEX Atom (2240) 은 엑스포트 엔트리 목록을 포함한다. 각각의 엑스포트 엔트리는 8 비트 이름 사이즈로 인코딩된 이름, 후속하여 종단 (terminating) 0 을 포함한 이름의 문자, 후속하여 지칭된 엔트리 포인트의 바이트 오프셋을 나타내는 32-비트 정수 (이것은 pkCS Atom 에 저장된 데이터 시작 부분의 오프셋이다) 로 이루어진다.
4.7.1. 모듈 로더
일 실시예에서, 제어 VM 은 코드 모듈의 로딩을 담당한다. 코드 모듈이 로딩되면, pkDS Atom (2220) 에서 인코딩된 메모리 이미지가 데이터 세그먼트의 메모리 어드레스에 로딩된다. 이 어드레스는 VM 로더에 의해 선택되고, DS 의사-레지스터 (pseudo-register) 에 저장된다. pkCS Atom (2230) 에서 인코딩된 메모리 이미지는 코드 세그먼트의 메모리 어드레스에 로딩된다. 이 어드레스는 VM 로더에 의해 선택되고, CS 의사-레지스터에 저장된다.
4.7.2. 시스템 호출
일 실시예에서, 제어 VM 프로그램은 자체 코드 모듈의 코드 세그먼트 외부에서 구현된 함수를 호출할 수 있다. 이것은 OP_CALL 명령의 사용을 통해 이루어지며, 이때 호출에 대한 시스템 호출 번호를 특정하는 정수 스택 피연산자를 취하게 된다. 시스템 호출에 의존하여, VM 의 원시 구현 포맷에서 VM 에 의해 직접적으로, 또는 VM 의 호스트 환경과 같은 외부 소프트웨어 모듈에 위임하여, 상이한 코드 모듈에서 제어 VM 바이트 코드 루틴 (예를 들어, 이용 함수의 라이브러리) 이 구현될 수 있다.
일 실시예에서는, 몇 개의 시스템 호출 번호가 특정된다.
SYS_NOP = 0 : 이 호출은 비-오퍼레이션 호출이다. 이것은 그냥 반환만 한다 (다른 액션은 하지 않음). 주로 VM 의 시험을 목적으로 사용된다.
SYS_DEBUG_PRINT = 1 : 디버그 출력에 텍스트 스트링을 인쇄한다. 이 호출은 인쇄할 널-종료된 (null-terminated) 스트링을 포함한 메모리 위치의 어드레스를 특정하는 단일 스택 인수 (argument) 를 기대한다.
SYS_FIND_SYSCALL_BY NAME = 2 : VM 이 지칭된 시스템 호출을 구현할지 여부를 결정한다. 구현하는 경우에는, 시스템 호출 번호가 스택에 반환되고, 그렇지 않은 경우, 값 -1 이 반환된다. 이 호출은 요청되고 있는 널-종료된 시스템 호출 이름을 포함한 메모리 위치의 어드레스를 특정하는 단일 스택 인수를 기대한다.
4.7.3. 시스템 호출 번호 할당
일 실시예에서, 제어 VM 은 의무적인 시스템 호출을 위해 0 내지 1023 의 시스템 호출 (VM 의 모든 프로필에 의해 구현되어야 하는 시스템 호출) 번호를 예약한다.
16384 내지 32767 의 시스템 호출 번호는 VM 이 동적으로 할당하는데 이용할 수 있다 (예를 들어, SYS_FIND_SYSCALL_BY_NAME에 의해 반환된 시스템 호출 번호는 VM 에 의해 동적으로 할당될 수 있으며, 모든 VM 구현에서 번호가 동일할 필요는 없다).
4.7.4. 표준 시스템 호출
일 실시예서, 제어 프로그램 기입을 촉진하기 위해 몇몇 표준 시스템 호출이 제공된다. 이러한 표준 시스템 호출은 호스트로부터 타임 스탬프를 획득하기 위한 호출, 노드가 도달할 수 있는지 여부를 결정하기 위한 호출 등을 포함할 수도 있다. 시스템 호출은 동적으로 결정된 번호를 갖는 것이 바람직하다 (예를 들어, 이름이 인수로서 전달된 SYS_FIND_SYSCALL_BY_NAME 시스템 호출을 호출함으로써 그 시스템 호출의 시스템 호출 번호를 검색할 수 있다).
4. 8. DRM 엔진 인터페이스와 호스트 애플리케이션 간의 인터페이스
다음은 예시적인 DRM (클라이언트 소비) 엔진에 의해 호스트 애플리케이션에 제공되는 인터페이스 타입에 대한 일부 예시적인 고레벨 설명이다.
SystemName::CreateSession (hostContextObject) → Session
호스트 애플리케이션 콘텍스트가 주어진 세션을 생성한다. 콘텍스트 오브젝트는 DRM 엔진에 의해 사용되어 애플리케이션으로 콜백을 하게 된다.
Session::ProcessObject (drmObject)
이 함수는 호스트 애플리케이션이 DRM 서브시스템에 속한 것으로 확인될 수 있는 미디어 파일에서 일정 타입의 오브젝트와 마주치게 되는 경우, 호스트 애플리케이션에 의해 호출되어야 한다. 이러한 오브젝트는 콘텐츠 제어 프로그램, 멤버쉽 토큰 등을 포함한다. 이러한 오브젝트의 신택스 (syntax) 와 시맨틱은 호스트 애플리케이션에게는 불투명하다.
Session::OpenContent (contentReference) → Content
호스트 애플리케이션은 멀티미디어 콘텐츠 파일과 상호작용이 필요한 경우 이 함수를 호출한다. 순차적으로, DRM 엔진은 콘텐츠에 대한 DRM 정보를 검색하고 이 정보와 상호작용하는데 사용될 수 있는 콘텐츠 오브젝트를 반환한다.
Content::GetDrmInfo()
파일에 대한 일반적인 메타데이터에서는 가용하지 않은 콘텐츠에 대한 DRM 메타데이터를 반환한다.
Content::CreateAction (actionInfo) → Action
호스트 애플리케이션은 콘텐츠 오브젝트와의 상호작용을 원할 때 이 함수를 호출한다. actionInfo 파라미터는, 애플리케이션에서 실행되어야 할 액션 타입 (예를 들어, 재생) 뿐만 아니라, 필요한 경우 관련 파라미터를 특정한다. 그 후, 이 함수는, 액션을 실행하고 콘텐츠 키를 검색하는 데 이용될 수 있는 액션 오브젝트를 반환한다.
Action::GetKeyInfo()
암호해독 서브시스템이 콘텐츠를 암호해독하는데 필요한 정보를 반환한다.
Action::Check()
DRM 서브시스템이 이 액션의 실행을 인가할지의 여부 (즉, Action::Perform() 의 성공여부) 를 검사한다.
Action::Perform()
액션을 실행하고, 이 액션을 통제하는 규칙(들)에서 특정된 대로 임의의 결과를 (그것의 부작용과 함께) 전달한다.
다음은 예시적인 호스트 애플리케이션에 의해 DRM (클라이언트 소비) 엔진에 제공되는 인터페이스 타입에 대한 일부 예시적인 고레벨 설명이다.
HostContext::GetFileSystem (type) → FileSystem
DRM 서브시스템이 독점적으로 액세스하는 가상 FileSystem 오브젝트를 반환한다. 이 가상 FileSystem 은 DRM 상태 정보 저장에 이용된다. 이 FileSystem 내의 데이터는 DRM 하위시스템에서만 판독 및 기입이 가능하다.
HostContext::GetCurrentTime()
호스트 시스템에 의해 유지되는 현재 날짜/시간을 반환한다.
HostContext::GetIdentity()
이 호스트의 고유 ID 를 반환한다.
HostContext::ProcessObject (dataObject)
DRM 오브젝트에 구현되어 있을 수 있지만 호스트가 관리하고 있는 것으로 DRM 서브시스템이 인식하고 있는 데이터 오브젝트 (예를 들어, 인증서 등) 를 호스트 서비스에 반환한다.
HostContext::VerifySignature (signatureInfo)
데이터 오브젝트에 대한 디지털 서명의 유효성을 검사한다. signatureInfo 오브젝트는 XMLSig 엘리먼트에서 발견되는 정보와 동일한 정보를 포함하고 있는 것이 바람직하다. 호스트 서비스는 서명 검증에 필요한 키와 키 인증서를 관리할 책임이 있다.
HostContext::CreateCipher (cipherType, keyInfo) -> Cipher
DRM 서브시스템은 데이터를 암호화/암호해독하는 데에 사용할 수 있는 Cipher 오브젝트를 생성한다. Cipher 구현에 의해 요구되는 키 정보를 설명하기 위하여 각 포맷에 대해 최소 Cipher 타입 세트를 정의하는 것이 바람직하다.
Cipher::Encrypt (data)
위에서 설명한 데이터 암호화에 사용되는 Cipher 오브젝트.
Cipher::Decrypt (data)
위에서 설명한 데이터 암호해독에 사용되는 Cipher 오브젝트.
HostContext::CreateDigester (digesterType) -> Digester
DRM 서브시스템이 일부 데이터에 대한 보안 해시 계산을 위해 사용할 수 있는 Digester 오브젝트를 생성한다. 최소 다이제스트 (digest) 타입 세트를 정의한다.
Digester::Update (data)
위에서 설명한 보안 해시 계산에 사용되는 Digester 오브젝트.
Digester::GetDigest()
위에서 설명한 DRM 서브시스템이 계산한 보안 해시 획득에 사용되는 Digester 오브젝트.
다음은 예시적인 DRM (서비스측 패키지) 엔진에 의해 호스트 애플리케이션에 제공되는 인터페이스 타입의 일부 예시적인 고레벨의 설명이다.
SystemName::CreateSession (hostContextObject) -> Session
*호스트 애플리케이션 콘텍스트를 제공하는 세션을 생성한다. 이 Context 오브젝트는 애플리케이션으로의 콜백을 행하기 위하여 DRM 패키지 엔진에 의해 사용된다.
Session::CreateContent (contentReferences[]) -> Content
호스트 애플리케이션은 아래 단계에서 라이센스 오브젝트와 결합하게 될 Content 오브젝트를 생성하기 위하여 이 함수를 호출한다. contentReference 어레이에 2 이상의 콘텐츠 레퍼런스를 갖는다는 것은 이들이 번들로 (예를 들어, 하나의 오디오와 하나의 비디오 트랙) 함께 바운딩되고, 발생된 라이센스가 이들을 하나의 분할할 수 없는 그룹에 타깃되어야 함을 의미한다.
Content::SetDrmInfo (drmInfo)
drmInfo 파라미터는 발행될 라이센스의 메타데이터를 특정한다. 이 구조는 VM 에 대한 바이트코드로 라이센스를 계산하기 위한 지침으로서 기능 및 그 지침을 판독한다.
Content::GetDRMObjects (format) -> drmObjects
이 함수는 호스트 애플리케이션이 DRM 패키지 엔진이 생성하였던 drmObjects 를 획득할 준비가 된 경우에 호출된다. 포맷 파라미터는 이 오브젝트에 대해 기대되는 포맷 (예를 들어, XML 또는 binary atoms) 을 나타낼 것이다.
Content::GetKeys() -> keys[]
이 함수는 호스트 애플리케이션이 콘텐츠의 암호화를 위하여 키가 필요한 경우 그 호스트 애플리케이션에 의해 호출된다. 일 실시예에서 콘텐츠 레퍼런스 당 하나의 키가 존재한다.
다음은 예시적인 호스트 애플리케이션이 DRM (서비스측 패키지) 엔진에게 제공하는 인터페이스 타입에 대한 일부 예시적인 고레벨 설명이다.
HostContext::GetFileSystem (type) -> FileSystem
DRM 서브시스템은 독점적인 엑세스 권한을 갖는 가상 FileSystem 오브젝트를 반환한다. 이 가상 FileSystem은 DRM 상태 정보를 저장하는 데 사용된다. 이 FileSystem내의 데이터는 DRM 서브시스템에 의해서만 판독 및 기입될 수 있다.
HostContext::GetCurrentTime() -> Time
호스트 시스템에 의해 유지되는 현재 날짜/시간을 반환한다.
HostContext::GetIdentity() -> ID
이 호스트의 고유한 ID 를 반환한다.
*HostContext::PerformSignature (signatureInfo, data)
DRM 패키지 엔진에 의해 생성된 일부 DRM 오브젝트는 신뢰될 필요가 있다. 호스트가 제공하는 이 서비스는 특정된 오브젝트에 서명하기 위해 사용된다.
HostContext::CreateCipher (cipherType, keyInfo) -> Cipher
DRM 패키지 엔진이 데이터를 암호화 및 암호해독하는데 사용하는 Cipher 오브젝트를 생성한다. 이 함수는 콘텐츠 키 오브젝트의 콘텐츠 키 데이터를 암호화하는데 사용된다.
*Cipher::Encrypt (data)
위에서 설명한 데이터 암호화에 사용되는 Cipher 오브젝트.
Cipher::Decrypt (data)
위에서 설명한 데이터 암호해독에 사용되는 Cipher 오브젝트.
HostContext::CreateDigester (digesterType) -> Digester
DRM 패키지 엔진이 일부 데이터에 대한 보안 해시 계산을 위해 사용할 수 있는 Digester 오브젝트를 생성한다.
Digester::Update (data)
위에서 설명한 보안 해시 계산에 사용되는 Digester 오브젝트.
Digester::GetDigest()
위에서 설명한 DRM 서브시스템이 계산한 보안 해시 획득에 사용되는 Digester 오브젝트.
HostContext::GenerateRandomNumber()
키 생성을 위하여 사용될 수 있는 난수 (random number) 를 생성한다.
5. 서비스
5. 1. 개요
NEMO/DRM 시스템에 대한 아키텍처 및 오퍼레이션 측면에서의 설명에 이어서 이제부터 시스템 기능 구현을 위하여 사용될 수 있는 서비스, 데이터 타입 및 관련 오브젝트 ("프로필") 의 예시적인 콜렉션을 설명한다.
앞서 살펴본 바와 같이, NEMO 아키텍처의 바람직한 실시예는 서비스 호출과 관련된 요청 및 응답에 대한 신택스, 프레임워크 내에서 사용되는 데이터 타입, 메시지 엔벨로핑, NEMO 프레임워크에 의해 공개되고 그 프레임워크내에서 사용되는 데이터 값을 유연하고 간편하게 설명하는 방법이 사용된다. WSDL 1.1 이상은 다양한 타입의 서비스 인터페이스 및 호출 패턴을 설명 및 나타내기 위해 충분한 유연성을 제공하며, 다양한 통신 프로토콜을 통하여 다양하고 상이한 엔드포인트 노드들에 대한 바인딩을 수용하기 위한 충분한 추상화 기능을 가지고 있다.
일 실시예에서, WSDL에 정의된, 주제에 있어서 관련된 일련의 데이터 타입 및 인터페이스로 프로필을 정의한다. NEMO 는 (기본적인 NEMO 노드 상호작용 패턴 및 기반구조 기능을 지원하기 위하여 필요한 기초적인 데이터 타입 및 서비스 메시지 집합을 포함하는) "핵심" 프로필과 (NEMO 를 이용하여 구현될 수 있는 DRM 서비스를 설명하는) DRM 프로필과 같은 애플리케이션-특정 프로필을 구분하며, 이 두 가지 프로필은 아래와 같이 설명된다.
이들 프로필에서 정의되는 많은 데이터 타입 및 서비스들은 추상적인 것이며, 사용 전에 구체화되어야 함을 인지해야 한다. 기타의 프로필들은 이 핵심 프로필의 상부에 구축된다.
5. 2. NEMO 프로필 계층
일 실시예에서 서비스 인터페이스 및 관련 데이터 타입에 대한 정의는 상호 기초 위에 구성되고 확장되는 일련의 필수 및 선택적인 프로필로 구성된다. 프로필과 확장 프로필 간의 차이는 비교적 미세하다. 일반적으로 확장 프로필은 새로운 데이터 타입이나 서비스 타입에 대한 정의를 추가하지 않는다. 이들은 단순히 기존의 추상적 및 구체적인 타입들을 확장할 뿐이다.
도 23 은 NEMO 및 DRM 기능에 대한 예시적인 프로필 계층을 도시하고 있다. 이 프로필 계층의 주요 엘리먼트는 다음을 포함한다.
핵심 프로필 - 이 프로필 계층의 기초에는 NEMO 및 DRM 기능을 공유하는 것이 바람직한 핵심 프로필 (2300) 이 존재한다. 이 프로필은 기타 모든 프로필들의 기초가 된다. 여기에는 프레임워크 내의 보다 복잡한 타입을 생성하기 위한 기초 역할을 하는 일반적인 타입들이 포함된다 (아래 논의). 핵심 프로필 내의 많은 타입들은 추상적이며, 사용 전에 구체화되어야 한다.
핵심 확장 프로필 - 핵심 프로필 (2300) 바로 위에는 핵심 확장 프로필 (2320) 이 존재하는데, 그 핵심 확장 프로필은 핵심 프로필 (2300) 의 타입에 대한 일차적인 특수화 (primary specialization) 이며, 구체적인 프리젠테이션을 가능하게 한다.
핵심 서비스 프로필 - 또한, 핵심 프로필 (2300) 바로 위에서, 핵심 서비스 프로필 (2310) 이 아래에 논의될 일반적인 기반구조 서비스 세트를 정의한다. 이 프로필에서 서비스 정의는 추상적이며, 사용 전에 구체화되어야 한다.
핵심 서비스 확장 프로필 - 핵심 확장 프로필 (2320) 및 핵심 서비스 프로필 (2310) 위에는 핵심 서비스 확장 프로필 (2330) 이 존재하는데, 이 프로필은 핵심 서비스 프로필 (2310) 에서 정의된 서비스에 대한 일차적인 특수화이며, 구체적인 프리젠테이션을 가능하게 한다.
DRM 프로필 - 핵심 프로필 (2300) 바로 위에는, 다른 DRM-관련 프로필의 기초인 DRM 프로필 (2340) 이 있다. DRM 프로필 (2340) 에는 보다 복잡한 DRM-특정 타입의 생성에 기초가 되는 기본적인 범용 타입 세트 (아래 설명) 들이 포함된다. DRM 프로필 (2340) 의 많은 타입들은 추상적이고 사용전에 구체화될 필요가 있다.
DRM 확장 프로필 - DRM 프로필 (2340) 위에는 DRM 확장 프로필 (2350) 이 놓이는데, 이 프로필은 DRM 프로필 (2340) 의 타입에 대한 일차적인 특수화이며, 구체적인 프리젠테이션을 가능하게 한다.
DRM 서비스 프로필 - DRM 프로필 (2340) 위에는 또한 DRM 서비스 프로필 (2360) 이 오는데, 이 프로필은 일반 DRM 서비스 세트 (아래 논의) 를 정의한다. 이 프로필에서 서비스 정의는 추상적이며, 사용 전에 구체화되어야 한다.
특정 DRM 프로필 - DRM 확장 프로필 (2350) 과 DRM 서비스 프로필 (2360) 위에는, DRM 서비스 프로필 (2360) 에서 정의된 DRM 서비스를 더욱 특수화한 특정 DRM 프로필 (2370) 이 온다. 이 프로필은 또한 일부 새로운 타입들을 도입하고 핵심 확장 프로필 (2320) 에서 특정된 특정 타입들을 추가로 확장시킨다.
5. 3. NEMO 서비스와 서비스 규격
일 실시예에서 이러한 프로필 계층은 (위에서 상세히 설명된 바와 같이) 아래와 같은 주요 서비스들을 포함한다.
피어 디스커버리 ( Peer Discovery ) - 시스템 내에서 피어가 서로 검색하게 하는 능력.
서비스 디스커버리 ( Service Discovery ) - 상이한 피어가 제공하는 서비스에 대한 정보를 검색 및 획득하는 능력.
인가 ( Authorization ) - 소정의 피어 (예를 들어, 노드) 가 (서비스와 같은) 소정의 리소스에 액세스할 권한이 인가되어 있는지 여부를 결정하는 능력.
통지 ( Notification ) - 특정된 기준에 기초하여, 소정의 일련의 피어 (예를 들어, 노드) 로 타깃된 메시지를 전달하는 것과 관련된 서비스.
다음은 이러한 예시적인 프로필 계층 내에서의 주요 DRM 구성물들에 대한 (위에서도 논의된) 정의이다.
퍼스널라이제이션 ( Personalization ) - 특정 DRM 시스템의 콘텍스트에서 유효한 아이덴티티를 설정하기 위하여 (CE 디바이스, 음악 플레이어, DRM 라이센스 서버 등과 같은) DRM-관련 엔드포인트에 필요한 증명서, 정책 및 기타 오브젝트를 획득하는 서비스.
라이센스 획득 ( Licensing Acquisition ) - 새로운 DRM 라이센스를 획득하는 서비스.
라이센스 번역 ( Licensing Translation ) - 새로운 DRM 라이센스 포맷을 다른 포맷으로 변환하는 서비스.
멥머쉽 ( Membership ) - 일부 지정된 도메인 내에서 멤버쉽을 설정하는 다양한 타입의 오브젝트를 획득하는 서비스.
일 실시예에서, NEMO/DRM 프로필 계층은 일련의 일반 인터페이스 규격 (추상적인 서비스 세트, 통신 패턴 및 오퍼레이션을 설명함), 타입 규격 (NEMO 프로필에서 정의된 데이터 타입을 포함함), 구체적인 규격 (특정 프로토콜에 대한 바인딩을 포함하는 구체적인 서비스 인터페이스에 추상적인 서비스 인터페이스를 맵핑함) 으로서 설명될 수 있다. 이러한 규격의 일 실시예는 서비스 정의 및 프로필 스키마의 형태로 본 문서의 부록 C 에 규정되어 있다.
6. 추가적인 애플리케이션 시나리오
도 24 는 DRM-보호 음악을 재생하기 위하여 새로운 음악 플레이어를 사용하는 소비자의 콘텍스트에서 오퍼레이션에서의 NEMO 의 실시예에 대한 비교적 간단한 예를 도시하고 있다. 그러나 아래에 도시된 바와 같이 이렇게 단순한 예에 있어서도 매우 많은 상이한 잠재적인 관련 애플리케이션 시나리오가 그려질 수 있다. 이 예는, UDDI 기반 디렉토리 서비스를 발견 및 그 서비스에 링크하기 위한 메커니즘으로서 보편적인 플러그 앤 플레이 (UPnP) 기반 서비스 디스커버리를 사용하는 디스커버리 서비스들의 브리지를 도시한다. 이 예는 또한 개인통신망 (PAN) 서비스와 광역통신망 (WAN) 서비스 간의 서비스 상호작용, 서비스 사용을 위한 신뢰받는 콘텍스트의 협의, 및 새로운 디바이스와 DRM 서비스의 제공을 상세히 보여주고 있다.
도 24 에서, 새로운 음악 플레이어 (2400) 를 구매한 소비자는 DRM-보호된 음악을 재생하기를 원한다. 플레이어 (2400) 는 이 DRM 시스템을 지원할 수 있으나 퍼스널라이제이션이 필요하다. 다시 말해서, 플레이어 (2400) 는, NEMO-가능 및 DRM-가능 능력을 그 플레이어에 렌더링하는 일정 엘리먼트 (미도시) 를 포함하고 있더라도, 이 시스템의 일부가 되기 위해서는 우선 퍼스널라이제이션 프로세스를 수행해야 한다.
일반적으로, NEMO 클라이언트는 상기 도 5a 및 도 6 에 도시된 바와 같이, 다른 노드의 서비스를 호출하기 위한 서비스 액세스 포인트, 보호되어 있는 콘텐츠의 재생을 위하여 신뢰된 리소스임을 보여주기 위한 신뢰 관리 프로세싱뿐만 아니라, 서비스 호출 및 메시지의 생성과 수신을 지원하는 웹 서비스층과 같은 기본 구성 엘리먼트들을 포함한다. 그러나 아래 논의되는 바와 같이 NEMO 시스템에 노드가 참가하기 위하여 이들 엘리먼트들 모두가 반드시 필요한 것은 아니다.
일부 실시예에서, 클라이언트 노드에는 도 12a 및 도 13 내지 도 15 에 도시된 바와 같이, 보호된 음악의 재생을 위한 미디어 렌더링 엔진뿐만 아니라, 보호된 음악의 암호해독을 포함하여 보호된 콘텐츠의 프로세싱을 위한 DRM 클라이언트 엔진과 암호화 서비스 (및 관련 오브젝트와 암호화 키) 와 같은 DRM-관련 기본 엘리먼트들이 포함될 수 있다. 여기에서도 이러한 일부 엘리먼트들은 반드시 필요한 것은 아니다. 예를 들어, 플레이어 (2400) 가 보호되지 않은 콘텐츠만을 재생할 수 있는 음악 플레이어인 경우, 다른 음악 플레이어에 있는 핵심 암호화 엘리먼트는 필요하지 않다.
좀 더 상세히 설명하자면, 도 24 의 예에서 플레이어 (2400) 는 무선 장치로서 UPnP 및 블루투스 프로토콜을 지원하며, 서명을 인증하고 메시지에 서명하기 위해 사용할 수 있는 X.509 인증서 세트를 가지고 있다. 이 플레이어 (2400) 는 제한된 수의 NEMO 서비스 메시지를 생성 및 프로세싱할 수 있다는 점에서 NEMO-가능하지만 리소스의 제약으로 인해 NEMO 서비스 액세스 포인트를 포함하지 않는다.
그러나 플레이어 (2400) 는 NEMO-가능하고 인터넷에 연결되어 있으며 블루투스 및 NEMO SAP (2430) 이 장착된 홈 게이트웨이 디바이스 (2420) 를 포함하는 사용자 가정에서의 개인 통신망 (PAN; 2410) 에 참가할 수 있다. 플레이어 (2400) 및 게이트웨이 (2420) 의 UPnP 스택은 아래 논의된 "NEMO-가능 게이트웨이" 서비스에 대한 새로운 서비스 프로필 타입의 지원을 위하여 확장되어 있다.
사용자가 음악을 다운로딩하여 재생을 시도하는 경우, 플레이어 (2400) 는 퍼스널라이제이션이 필요하다고 결정한 다음 해당 프로세스를 시작한다. 예를 들어, 플레이어 (2400) 는 PAN (2410) 상의 NEMO 게이트웨이에 대한 UPnP 서비스 요청을 시작할 수도 있다. 플레이어는 NEMO 게이트웨이 서비스의 위치를 지정하고 게이트웨이 (2420) 는 플레이어 (2400) 가 해당 서비스에 접속하도록 필요한 정보를 반환한다.
이후 플레이어 (2400) 는 NEMO 퍼스널라이제이션 요청 메시지를 생성하여 게이트웨이 서비스로 전송한다. 이 요청에는 플레이어 (2400) 의 장치 아이덴티티와 관련된 X.509 인증서가 포함된다. 해당 요청을 수신할 시에, 게이트웨이 (2420) 는 이 요청을 로컬에서는 충족시킬 수 없다고 결정하지만, 다른 잠재적인 서비스 제공자를 검색할 수 있다. 그러나 게이트웨이 (2420) 는 모든 수신 메시지에 디지털 서명이 있어야 한다는 정책을 가지며, 따라서 해당 요청을 거부고, 이러한 타입의 요청 프로세스와 관련된 정책을 나타낸 승인 실패 메시지를 반환한다.
이 거부 메시지를 수신할 시에, 플레이어 (2400) 는 서비스 거부의 이유를 확인한 다음, 디지털 서명을 하고 (예를 들어 도 15 와 관련하여 위에서 논의한 대로), 이 요청을 다시 게이트웨이 (2420) 로 제출하며, 그 후, 게이트웨이 (2400) 는 이 메시지를 수용한다. 앞서 언급한 대로 게이트웨이 (2420) 는 이 요청을 로컬적으로 충족시킬 수는 없으나 서비스 디스커버리를 수행할 수는 있다. 게이트웨이 (2420) 는 그의 SAP (2430) 구현이 지원하는 특정한 디스커버리 프로토콜을 인지하고 있지 않으며, 따라서 원하는 서비스 (퍼스널라이제이션) 의 타입에 기초하여 일반적인 속성-기반의 서비스 디스커버리 요청을 구성하여 이를 SAP (2430) 을 통해 디스패치한다.
인터넷-기반의 UDDI 레지스트리 (2440) 와 같은 UDDI 레지스트리와의 통신에 필요한 정보로 구성된 SAP (2430) 은 이 요청을 원시 UDDI 쿼리의 적합한 형식으로 변환하여 전송한다. UDDI 레지스트리 (2440) 는 DRM 퍼스널라이제이션을 지원하는 서비스 사업자를 알고 있으므로 쿼리의 결과를 반환한다. SAP (2430) 은 이러한 결과를 수신한 다음, 필요한 서비스 사업자 정보와 함께 적절한 포맷으로 적합한 응답을 게이트웨이 (2420) 로 반환한다.
게이트웨이 (2420) 는 서비스 디스커버리 응답으로부터 서비스 제공자 정보를 추출하고, 플레이어 (2400) 를 대신하여 최초 요청에 기초하여 퍼스널라이제이션에 대한 새로운 요청을 구성한다. 이 요청은 SAP (2430) 로 전달된다. 서비스 제공자 정보는 (특히 퍼스널라이제이션 서비스 (2450) 의 서비스 인터페이스에 대한 설명은) SAP (2430) 가 어떻게 WSDL에 설명된 웹 서비스를 통하여 서비스를 공개시키는 퍼스널라이제이션 서비스와 통신해야 하는지를 보여준다. SAP (2430) 은 이 요청사항을 준수하여 퍼스널라이제이션 서비스 (2450) 를 호출하고 응답을 수신한다.
이후 게이트웨이 (2420) 는 이러한 응답을 플레이어 (2400) 로 반환하며, 플레이어는 이 응답의 페이로드를 사용하여 그것의 DRM 엔진을 퍼스널라이제이션할 수 있다. 이 시점에서 플레이어 (2400) 의 기능이 준비되어 다양한 로컬 및 글로벌 고객-지향 서비스에 참여할 수 있게 된다. 이 서비스들은 다양한 로컬 및 원격지 콘텐츠 서비스, 룩업 (lookup), 매칭 및 라이센스 서비스, 부가적인 자동 준비 서비스에 가시화 및 엑세스를 제공하여 소비자 서비스 이용을 돕는다. 위에서 설명한 바와 같이 콘텐츠 사업자가 부과한 모든 정책을 소비자자와 플레이어 (2400) 가 충족한다고 가정하면, 일부 보호 콘텐츠에 대한 액세스를 위하여 다양한 암호해독 키가 필요하다.
따라서 가정에서 개인용 미디어 플레이어를 사용하는 소비자는 간편한 CE 디바이스를 이용할 수 있지만, 게이트웨이 및 피어 디바이스에 의해 제공되는 서비스에 영향을 받는다. 소비자가 다른 장소로 이동하는 경우, 디바이스는 가정에서 이용가능한 서비스의 대부분 또는 모두를 재검색 및 사용하고, 새로운 게이트웨이 서비스를 통하여 홈 네트워크에 논리적으로 접속될 수 있으며, 이때 이러한 서비스들과 관련된 다양한 정책들에 따라 허용된 서비스들을 새로운 장소에서도 이용할 수 있다. 대조적으로, 소비자의 디바이스는 새로운 장소에서 발견된 피어에 서비스를 제공할 수 있다.
명확하게, 이러한 동일한 구성 (NEMO 노드, SAP, 서비스 적응층, XML, WSDL, SOAP, UDDI 등과 같은 다양한 표준) 의 일부 또는 전체를 사용함으로써, 이러한 DRM 음악 플레이어 예의 영역 내에서도 많은 다른 시나리오들이 가능하다. 예를 들어, 플레이어 (2400) 에 자체 SAP를 내장함으로써 게이트웨이 (2420) 가 필요하지 않게 될 수도 있다. UDDI 레지스트리 (2440) 를 음악 콘텐츠의 위치 확인 및 라이센싱과 같은 다른 목적으로 사용할 수도 있다. 뿐만 아니라, 사용자의 다양하고 상이한 카테고리를 위해, 많은 다른 DRM 애플리케이션이 사용될 수 있다 (예를 들어, 많은 상이한 타입의 오디오 및 비디오에 대한 복합적인 사용 및 배포 정책을 부과하는 라이센싱 방식의 이용 등). 또한 DRM 콘텍스트의 외부에서, 영역에서 NEMO 프레임워크를 이용하여 가상의 임의의 다른 서비스-기반 애플리케이션이 구성될 수 있다.
또 다른 예로, 비즈니스 P2P 환경에서 NEMO의 애플리케이션을 고려한다. 비즈니스 애플리케이션의 개발 및 통합을 위한 기술은, 대부분의 IT 분야에서 수행되는 바와 같이, 전통적인 툴 및 소프트웨어 개발 주기의 한계를 넘어 빠르게 진화하고 있다. 여기에는 워드 프로세스 문서, 그래픽 프리젠테이션, 스프레드시트의 개발이 포함된다. 일부는 이러한 단순한 형태의 문서들이 진정한 애플리케이션을 대표하는 것인지에 대해 반론이 제기될 수도 있으나, 이러한 문서들의 많은 형태들이 잘 정의되어 있으며, 또한 공식적으로 설명된 복잡한 오브젝트 모델임을 고려해야 한다. 이러한 문서들 또는 기타 오브젝트들은, 예를 들어, 오브젝트의 수명주기 동안 검사 및 업데이트될 수 있는 상태 정보, 여러 사용자들이 오브젝트에 대해 동시에 작업을 수행할 수 있는 능력, 및/또는 부가적인 임의의 기능을 포함할 수 있다. 더 정교한 시나리오에서, 문서 기반의 정보 오브젝트들은 충분한 기능을 가진 애플리케이션으로 작용하도록 프로그래밍적으로 어셈블리될 수 있다.
전통적인 소프트웨어의 개발과 마찬가지로, 이러한 타입의 오브젝트들은 소스 제어 및 책임 (accountability) 의 혜택을 볼 수 있다. 오늘날 많은 시스템들이 문서 관리를 지원하고 많은 애플리케이션들이 일부 문서 제어 형식을 직접 지원하고 있다. 그러나 분산 프로세싱 환경의 콘텍스트에서, 이들 시스템들의 대부분은 한계를 보이며, 그 한계는 명시적인 체크인/체크아웃 모델을 통한 중앙 집중식 버전 관리, 그리고 특히 특정 애플리케이션 (예를 들어, 문서) 콘텍스트내에서 클라이언트 렌더링 애플리케이션 또는 포맷에 종속된 유연성 없는 (매우 취약한 또는 매우 엄격한) 코히런트 정책이 포함된다.
NEMO 의 바람직한 실시예는 능력 디스커버리 및 포맷 협의에 중점을 두는 P2P 정책 아키텍처에 의해 이러한 한계를 극복하기 위해 사용될 수 있다. 보다 다양한 방식으로 애플리케이션 (예를 들어 문서) 의 생성을 구성함으로써 보다 다양한 장점을 제공할 수 있다. 오브젝트 및 애플리케이션 구조에 다양한 정책을 적용할 수 있다. 예를 들어,정책은 다음의 일부 또는 전부를 특정할 수도 있다.
Figure pat00001
특정한 모듈만을 수정할 수 있다.
Figure pat00002
오브젝트 인터페이스만을 확장 또는 구현 변경할 수 있다.
Figure pat00003
삭제는 허용되나 확장은 불가하다.
Figure pat00004
비-충돌 업데이트의 자동 병합과 같은 기능을 포함하는 업데이트가 적용되는 방법, 및 소정의 피어가 그것의 임의의 업데이트를 다른 피어에 전송할 수 있기 전에 업데이트를 적용하는 방법.
Figure pat00005
가장 적절한 메커니즘을 통해 직접적인 동기화에 참여하기 위해, 모든 피어들이 선택할 경우, 업데이트를 통지받을 수 있도록 하는 정책-기반 통지.
Figure pat00006
클라이언트의 능력에 기초한 상이한 타입의 클라이언트로부터의 업데이트 지원.
이 기능을 달성하기 위하여 각 참여 요소들이 사용하는 오서링 애플리케이션은 NEMO-가능 피어가 될 수 있다. 생성된 문서에 대하여 (문서의 통상적인 포맷팅 규칙 이외에도) 문서의 각 부분에 대하여 수행될 수 있는 작업 및 승인된 사람을 포함하는 정책을 설명한 템플릿 (template) 이 사용될 수 있다. NEMO 피어가 사용하는 정책 엔진이 정책 규칙의 시멘틱에 부합하는 정책 규칙을 해석 및 시행하고, 문서의 생성에서 허용된 피어 인터페이스가 지원하는 오퍼레이션이 서비스 적응층을 통해 소정의 피어의 환경에 맵핑될 수 있는 한, 어떠한 피어도 참여가 가능하지만 내부적으로는 상이하게 문서를 나타낸다.
프리젠테이션 문서에 대한 공동 작업을 위하여, NEMO 프레임워크상에 구축된 서비스를 이용하여 상이한 NEMO 피어들로 구성된 시스템의 경우를 고려한다. 이 경우에 무선 PDA 애플리케이션은 텍스트로서 문서를 프로세싱 및 렌더링하기 위하여 사용되는 Java로 기입된 애플리케이션을 구동한다. 데스크탑 워크스테이션상의 Microsoft Windows
Figure pat00007
하에서 구동하는 상이한 구현은 Microsoft Word
Figure pat00008
포맷을 이용하여 동일한 문서를 프로세싱한다. PDA 와 워크스테이션은, 예를 들어, LAN 을 통한 접속에 의해 통신할 수 있으며, 따라서 PDA 사용자와 워크스테이션의 사용자는 동일한 문서 애플리케이션에 대해 공동 작업을 수행할 수 있다. 이 예에서:
Figure pat00009
공동 작업에 관련된 NEMO 피어들은 그들의 현재 상태, 그들의 능력을 서로 검색할 수 있다.
Figure pat00010
각 NEMO 피어는 각자가 수행한 변경에 대하여 그의 아이덴티티, 변경 사항, 오퍼레이션 (예를 들어, 삭제, 확장 등) 을 제출한다.
Figure pat00011
모든 변경 사항은 각 NEMO 피어로 전달된다. 이것은, 광고되면, 각 NEMO 피어가 상대 피어의 프로필과 능력을 검색할 수 있기 때문에 가능하다. 그렇지 못한 경우, 이 시점에서, 통지한 피어는 통지를 받은 피어가 수용할 수 있는 형식으로 콘텐츠 변경을 인코딩할 수 있다. 다른 방법으로, 통지를 수용한 피어는 그의 인터페이스에서 수신시에 적합성을 관측하는 임의의 포맷으로의 변경을 나타낼 수도 있다.
Figure pat00012
변경 내용을 수용하기 전에, 피어는 이 통지가 인가된 NEMO 참가자로부터 수신된 것인지 확인한다.
Figure pat00013
변경은 문서 정책에 기초하여 적용된다.
또 다른 예로, NEMO-가능 노드 (X) 이고 DRM 포맷 A 를 지원하지만 DRM 포맷 B 의 콘텐츠를 재생하고자 하는 휴대용 무선 가전제품 (CE) 디바이스의 경우를 고려한다. X 는 콘텐츠의 특성 (예를 들어, 콘텐츠의 아이덴티티, 지원 OS, 갱신가능성 프로필, 지원하는 지불 방법 등) 에 대한 설명뿐 아니라 콘텐츠 렌더링하려는 소망을 통지하고, 잠재적인 솔루션을 제공하는 다른 NEMO 피어로부터의 응답을 기다린다. 그의 쿼리에 대한 응답에서 X 는 세 가지 응답을 수신한다.
(1) 피어 1 은 $2.00 의 요금으로 다운로딩이 가능한 낮은 품질의 콘텐츠를 MP3 형식으로 제공할 수 있다.
(2) 피어 2 는 재생 횟수 당 $0.50 의 요율로 안전한 채널을 통해 높은 품질의 콘텐츠 스트리밍을 제공할 수 있다.
(3) 피어 3 은 $10.00 의 요금으로 DRM 포맷 B 의 콘텐츠 렌더링을 허용하는 소프트웨어 업데이트 를 X 에 제공할 수 있다.
선택 안들을 검토한 후, X 는 제 1 안을 가장 좋은 안으로 선택한다. X 는 제 1 안을 통해 콘텐츠 요청을 제출한다. 이 요청에는 피어 1 이 다른 NEMO 서비스를 통해 X 의 지불 계정으로부터 $2.00 을 차감하도록 허용하는 위임사항에 대한 확인이 포함되어 있다. X 에 대해 요금이 청구되면, X 는 그 대가로 MP3 파일의 다운로딩을 허용하는 토큰을 피어 1 로부터 받게 된다.
대신, X 가 제 3 안을 선택하는 경우, 좀 더 복잡한 비즈니스 트랜잭션이 발생한다. 예를 들어, 제 3 안은 참여하는 NEMO-가능 피어에 포함된 NEMO 워크플로 콜레이터 (WFC) 엘리먼트에 의해 구현된 NEMO 편성 디스크립터(Orchestration Descriptor; NOD) 를 이용하여 설명된 트랜잭션 비즈니스 프로세스로서 표현될 필요가 있을 수도 있다. X 에 대하여 필요한 소프트웨어 업데이트를 달성하기 위하여, NEMO 프레임워크를 이용하여 아래와 같은 액션이 실행될 수 있다.
Figure pat00014
X 는 무선 서비스 제공자 (B) 로부터 업데이트를 수신할 수 있는 권한을 획득한다.
Figure pat00015
무선 서비스 제공자 B 는 그의 아이덴티티 설정을 위하여 피어 3 의 인증서를 직접 검증한다.
Figure pat00016
X 는 B 로부터 제 3 자 업데이트의 설치를 허용하는 필수 업데이트를 다운로딩하며, 이것을 제한하는 정책은 없지만, 이 시나리오는 이 액션을 야기하는 위한 최초의 트리거링 이벤트이다.
Figure pat00017
X 는 피어 3 이 제공하는 업데이트에 대한 요금을 청구 받는다.
Figure pat00018
X 는 피어 3 으로부터 업데이트를 다운로딩한다.
이 비즈니스 프로세스에서, 일부 액션은 WFC 엘리먼트들에 의해 동시에 수행될 수 있지만, 다른 작업은 특정 시퀀스로 인가 및 수행되어야 한다.
NEMO 프레임워크의 잠재적인 애플리케이션의 다른 예는 온라인 게임의 콘텍스트에 존재한다. 많은 인기 있는 멀티 플레이어 게임 환경 네트워크들은 온라인 게이머들이 게임 세션을 생성하고 참여할 수 있도록 하는 중앙 집중화된 폐쇄형 포털로 구성되어 있다.
이 환경의 제약 중 하나는 사용자들이 일반적으로 게임 네트워크와의 밀접한 관계를 가져야 하고, 서비스 이용을 위한 계정 (대개 특정 게임 타이틀과 관련된 계정) 을 가지고 있어야 한다. 일반적으로, 게이머는 멀티 플레이어 게임을 구성하고 네트워크 내에 참여하기 위하여 다수의 게임 네트워크에 걸쳐 다수의 타이틀에 여러 개의 게임 계정을 관리하고 게임-사업자-특정 클라이언트 애플리케이션과 상호작용해야 한다. 이러한 작업은 불편하고 온라인 사용율을 떨어뜨린다.
NEMO 프레임워크의 실시예는 보다 연합되면서도 분산화된 게임 경험을 지원하는 환경을 생성함으로써 온라인 게임 경험을 개선시키기 위해 사용될 수 있으며, 특정 온라인 게임 네트워크의 세부 사항을 사용자 및 서비스 사업자에게 투명하게 보여준다. 이는 더 좋은 사용자 경험을 제공하여 서비스 선택 및 사용을 증가시킬 뿐 아니라 게임 네트워크 제공자의 행정적 부담을 감소시킬 수 있다.
이러한 혜택을 얻기 위해서, 게임 클라이언트는 NEMO 피어로서 참여하기 위하여 NEMO 모듈로 퍼스널라이제이션될 수 있다. 뿐만 아니라, 게임 네트워크는 표준 방식을 통하여 그것의 관리 인터페이스를 공개시킬 수 있도록 NEMO 모듈로 퍼스널라이제이션될 수 있다. 마지막으로, 인가된 피어들만이 의도된 방식으로 상호작용하는 것을 보장하기 위해 NEMO 의 신뢰 관리가 사용될 수 있다.
예를 들어, 세 개의 게임 네트워크 제공자 (A,B,C) 와 두 명의 사용자 (X,Y) 가 있다고 가정하자. 사용자 X 는 A 에 계정을 가지고 있고 사용자 Y 는 B 에 계정을 가지고 있다. X 와 Y 는 모두 C 에 새로운 타이틀을 획득하여 서로 게임을 하기를 원한다. NEMO 프레임워크를 이용하여 X 의 게임 피어는 자동적으로 온라인 게임 제공자 C 를 검색할 수 있다. X 의 계정 정보는, C 가 합법적인 게임 네트워크임을 A가 확인한 후, A 로부터 C 로 전송될 수 있다. 이제 X 는 C 에 등록되고 C 와 상호작용하기 위한 정확한 토큰이 제공된다. 사용자 Y 는 B 로부터의 인증서를 이용하여 동일한 절차를 밟아 C 에 대한 액세스 권한을 얻는다. X 와 Y 가 모두 등록되면, 그들은 서로를 검색할 수 있고 게임 세션을 생성할 수 있다.
이 단순한 등록 예는, 예를 들어, (예를 들어, 라커에서의) 게임 토큰 저장소, 계좌 지불, 이력 스핵심 보드와 같은 공유된 상태 정보를 포함하는, 온라인 게임 환경이 제공하는 다른 서비스들을 처리하도록 추가적으로 확장될 수 있다.
기업 문서 관리, 온라인 게임, 및 미디어 콘텐츠 소비의 콘텍스트에서, 몇 가지 예가 제시되었지만, 여기에서 설명된 NEMO 프레임워크와 DRM 시스템은 임의의 적절한 콘텍스트에서 사용될 수 있으며, 이러한 특정 예들에 제한되는 것이 아니다.
Figure pat00019
Figure pat00020
Figure pat00021
Figure pat00022
Figure pat00023
Figure pat00024
Figure pat00025
Figure pat00026
Figure pat00027
Figure pat00028
Figure pat00029
Figure pat00030
Figure pat00031
Figure pat00032
Figure pat00033
Figure pat00034
Figure pat00035
Figure pat00036
Figure pat00037
Figure pat00038
Figure pat00039
Figure pat00040
Figure pat00041
Figure pat00042
Figure pat00043
Figure pat00044
Figure pat00045
Figure pat00046
Figure pat00047
Figure pat00048
Figure pat00049
Figure pat00050
Figure pat00051
Figure pat00052
Figure pat00053
Figure pat00054
Figure pat00055
Figure pat00056
Figure pat00057
Figure pat00058
Figure pat00059
Figure pat00060
이상 상세한 설명을 통해 내용이 비교적 명확하게 제시되었지만 부록에 제시한 청구범위 안에서 변경 및 수정이 가능하다. 본 발명의 프로세스 및 기기를 구현하는 선택 가능한 대안은 많다. 따라서 본 구현은 예시로써 이것에만 국한되는 것은 아니며, 발명의 핵심은 (inventive body of work) 제시된 명세서에 제한되는 것이 아니라 부록에 제시한 청구항 범위 안에서 그에 상당하는 내용으로 수정 가능하다.

Claims (41)

  1. 컴퓨터 시스템에 의해 수행되는 방법으로서, 상기 컴퓨터 시스템은 제 1 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하는 소프트웨어를 저장하는 컴퓨터-판독가능 매체를 포함하며,
    상기 방법은,
    상기 컴퓨터 시스템이 제 2 디지털 저작권 관리 포맷으로 인코딩된 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스를 위치시키는 서비스 발견 프로세스를 수행하는 단계;
    상기 일부 콘텐츠에 대한 요청을 제 1 서비스 제공자에게 송신하는 단계로서, 상기 제 1 서비스 제공자는 상기 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스를 제공하며, 상기 제 1 서비스 제공자는 상기 서비스 발견 프로세스를 수행하는 단계에 의해 식별된, 상기 송신 단계; 및
    상기 컴퓨터 시스템에 의해 프로세싱될 수 있는 포맷으로 상기 일부 콘텐츠를 수신하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 제 1 서비스 제공자로부터 토큰을 수신하는 단계를 더 포함하며, 상기 토큰은 상기 컴퓨터 시스템이 상기 컴퓨터 시스템에 의해 프로세싱될 수 있는 포맷으로 상기 일부 콘텐츠를 다운로드하는 것을 가능하게 하도록 구성된, 방법.
  3. 제 1 항에 있어서,
    상기 컴퓨터 시스템은 워크플로 콜레이터 (workflow collator) 를 더 포함하며,
    상기 방법은 복수의 단계들의 수행을 조정하기 위해 상기 워크플로 콜레이터를 사용하는 단계를 더 포함하며, 상기 복수의 단계들은 상기 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위한 일부 소프트웨어를 수신하기 위해 제 2 서비스 제공자로부터 허락을 획득하는 단계 및 제 3 서비스 제공자로부터 상기 일부 소프트웨어를 다운로드하는 단계를 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위한 일부 소프트웨어를 획득하는 단계를 더 포함하는, 방법.
  5. 제 4 항에 있어서,
    상기 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위해 일부 소프트웨어를 수신하기 위한 허락을 획득하는 단계를 더 포함하는,방법.
  6. 제 1 항에 있어서,
    상기 컴퓨터 시스템이 상기 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스에 접근하기 위해 서비스 바인딩에 관한 정보를 상기 제 1 서비스 제공자로부터 수신하는 단계를 더 포함하는, 방법.
  7. 제 6 항에 있어서,
    상기 컴퓨터 시스템은 상기 요청을 생성하는 서비스 액세스 포인트를 더 포함하며, 상기 서비스 액세스 포인트는 상기 서비스에 접근하기 위한 상기 서비스 바인딩을 준수하는 방식으로 상기 요청을 자동적으로 만들도록 구성되는, 방법.
  8. 제 1 항에 있어서,
    상기 제 1 서비스 제공자와 신뢰 관계를 협상하는 단계를 더 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 제 1 서비스 제공자와 신뢰 관계를 협상하는 단계는 상기 제 1 서비스 제공자와 인증서들을 교환하는 단계를 포함하는, 방법.
  10. 제 1 컴퓨터 시스템에 의해 수행되는 방법으로서,
    제 1 디지털 저작권 관리 포맷으로 인코딩된 일부 콘텐츠에 접근하기 위한 요청을 제 2 컴퓨터 시스템으로부터 수신하는 단계로서, 상기 제 2 컴퓨터 시스템은 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하는 소프트웨어를 포함하는, 상기 수신 단계;
    상기 제 2 컴퓨터 시스템과 신뢰 인증서들을 교환하는 단계;
    상기 제 2 디지털 저작권 관리 포맷에서의 라이센스를 생성하는 단계; 및
    상기 라이센스를 상기 제 2 컴퓨터 시스템으로 전송하는 단계를 포함하는, 방법.
  11. 제 10 항에 있어서,
    상기 제 2 디지털 저작권 관리 포맷에서의 라이센스를 생성하는 단계는 상기 제 1 디지털 저작권 관리 포맷에서의 라이센스를 상기 제 2 디지털 저작권 관리 포맷에서의 라이센스로 번역하는 단계를 포함하는, 방법.
  12. 제 10 항에 있어서,
    토큰을 상기 제 2 컴퓨터 시스템으로 송신하는 단계를 더 포함하며, 상기 토큰은 상기 제 2 컴퓨터 시스템이 상기 제 2 컴퓨터 시스템에 의해 프로세싱될 수 있는 일부 콘텐츠의 버젼을 다운로딩하는 것을 가능하게 하도록 구성되는, 방법.
  13. 제 10 항에 있어서,
    상기 제 1 컴퓨터 시스템에 의해 제공되는 서비스에 접근을 하기 위한 서비스 바인딩에 관한 정보를 상기 제 2 컴퓨터 시스템으로 송신하는 단계를 더 포함하는, 방법.
  14. 제 10 항에 있어서,
    상기 제 1 컴퓨터 시스템은 상기 요청을 수신하고 이에 대한 응답을 하는 서비스 액세스 포인트를 포함하는, 방법.
  15. 제 10 항에 있어서,
    상기 제 1 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하는 일부 소프트웨어를 상기 제 2 컴퓨터 시스템으로 전송하는 단계를 더 포함하는, 방법.
  16. 컴퓨터 시스템으로서,
    상기 컴퓨터 시스템은 제 1 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하는 디지털 저작권 관리 소프트웨어를 저장하는 컴퓨터-판독가능 매체를 포함하며,
    상기 컴퓨터 시스템이 제 2 디지털 저작권 관리 포맷으로 인코딩된 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스를 위치시키는 서비스 발견 프로세스를 수행하는 수단;
    상기 일부 콘텐츠에 대한 요청을 제 1 서비스 제공자에게 송신하는 수단으로서, 상기 제 1 서비스 제공자는 상기 컴퓨터 시스템이 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스를 제공하는, 상기 송신 수단; 및
    상기 컴퓨터 시스템에 의해 프로세싱될 수 있는 포맷으로 상기 일부 콘텐츠를 수신하는 수단을 포함하는, 컴퓨터 시스템.
  17. 제 16 항에 있어서,
    상기 제 1 서비스 제공자로부터 토큰을 수신하는 수단을 더 포함하며, 상기 토큰은 상기 컴퓨터 시스템이 상기 컴퓨터 시스템에 의해 프로세싱될 수 있는 포맷으로 상기 일부 콘텐츠를 다운로드하는 것을 가능하게 하도록 구성된, 컴퓨터 시스템.
  18. 제 16 항에 있어서,
    복수의 동작들의 수행을 조정하기 위한 워크플로 콜레이터 (workflow collator) 를 더 포함하며,
    상기 복수의 동작들은 상기 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위한 일부 소프트웨어를 수신하기 위해 제 2 서비스 제공자로부터 허락을 획득하는 동작 및 제 3 서비스 제공자로부터 상기 일부 소프트웨어를 다운로딩하는 동작을 포함하는, 컴퓨터 시스템.
  19. 제 16 항에 있어서,
    상기 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위한 일부 소프트웨어를 획득하는 수단을 더 포함하는, 컴퓨터 시스템.
  20. 제 19 항에 있어서,
    상기 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위해 일부 소프트웨어를 수신하기 위한 허락을 획득하는 수단을 더 포함하는, 컴퓨터 시스템.
  21. 제 16 항에 있어서,
    상기 컴퓨터 시스템이 상기 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스에 접근하기 위해 서비스 바인딩에 관한 정보를 상기 제 1 서비스 제공자로부터 수신하는 수단을 더 포함하는, 컴퓨터 시스템.
  22. 제 21 항에 있어서,
    상기 요청을 생성하는 서비스 액세스 포인트를 더 포함하며, 상기 서비스 액세스 포인트는 상기 서비스 바인딩을 준수하는 방식으로 상기 요청을 자동적으로 만들도록 구성되는, 컴퓨터 시스템.
  23. 제 16 항에 있어서,
    상기 제 1 서비스 제공자와 신뢰 관계를 협상하는 수단을 더 포함하는, 컴퓨터 시스템.
  24. 제 23 항에 있어서,
    상기 제 1 서비스 제공자와 신뢰 관계를 협상하는 수단은 상기 제 1 서비스 제공자와 인증서들을 교환하는 수단을 포함하는, 컴퓨터 시스템.
  25. 제 1 디지털 저작권 관리 포맷으로 인코딩된 일부 콘텐츠에 접근하기 위한 요청을 제 2 컴퓨터 시스템으로부터 수신하는 수단으로서, 상기 제 2 컴퓨터 시스템은 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하는 소프트웨어를 포함하는, 상기 수신 수단;
    상기 제 2 컴퓨터 시스템과 신뢰 인증서들을 교환하는 수단;
    상기 제 2 디지털 저작권 관리 포맷에서의 라이센스를 생성하는 수단; 및
    상기 라이센스를 상기 제 2 컴퓨터 시스템으로 전송하는 수단을 포함하는, 제 1 컴퓨터 시스템.
  26. 제 25 항에 있어서,
    상기 제 2 디지털 저작권 관리 포맷에서의 라이센스를 생성하는 수단은 제 1 디지털 저작권 관리 포맷에서의 라이센스를 상기 제 2 디지털 저작권 관리 포맷에서의 라이센스로 번역하는 수단을 포함하는, 제 1 컴퓨터 시스템.
  27. 제 25 항에 있어서,
    토큰을 상기 제 2 컴퓨터 시스템으로 송신하는 수단을 더 포함하며,
    상기 토큰은 상기 제 2 컴퓨터 시스템이 상기 제 2 컴퓨터 시스템에 의해 프로세싱될 수 있는 일부 콘텐츠의 버젼을 다운로딩하는 것을 가능하게 하도록 구성되는, 제 1 컴퓨터 시스템.
  28. 제 25 항에 있어서,
    상기 제 1 컴퓨터 시스템에 의해 제공되는 서비스에 접근을 하기 위한 서비스 바인딩에 관한 정보를 상기 제 2 컴퓨터 시스템으로 송신하는 수단을 더 포함하는, 제 1 컴퓨터 시스템.
  29. 제 25 항에 있어서,
    상기 요청을 수신하는 수단 및 상기 라이센스를 전송하는 수단은 서비스 액세스 포인트를 포함하는, 제 1 컴퓨터 시스템.
  30. 프로그램 코드를 포함하는 컴퓨터-판독가능 매체로서, 상기 프로그램 코드는 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 단계들을 수행하도록 동작가능하며,
    상기 단계들은,
    상기 컴퓨터 시스템이 제 1 디지털 저작권 관리 포맷으로 인코딩된 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스를 위치시키는 서비스 발견 프로세스를 수행하는 단계로서, 상기 제 1 디지털 저작권 관리 포맷은 상기 컴퓨터-판독가능 매체에 저장된 디지털 저작권 관리 소프트웨어가 프로세싱 가능한 제 2 디지털 저작권 관리 포맷과 상이한, 상기 수행 단계;
    상기 일부 콘텐츠에 대한 요청을 제 1 서비스 제공자에게 송신하는 단계로서, 상기 제 1 서비스 제공자는 상기 컴퓨터 시스템이 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스를 제공하는, 상기 송신 단계; 및
    상기 컴퓨터 시스템에 의해 프로세싱될 수 있는 포맷으로 상기 일부 콘텐츠를 수신하는 단계를 포함하는, 컴퓨터-판독가능 매체.
  31. 제 30 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 제 1 서비스 제공자로부터 토큰을 수신하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하며,
    상기 토큰은 상기 컴퓨터 시스템이 상기 컴퓨터 시스템에 의해 프로세싱될 수 있는 포맷으로 상기 일부 콘텐츠를 다운로드하는 것을 가능하게 하도록 구성된, 상기 토큰 수신 단계를 더 포함하는, 컴퓨터-판독가능 매체.
  32. 제 30 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 단계들을 수행하도록 동작가능한 프로그램 코드를 더 포함하며,
    상기 단계들은,
    상기 제 1 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위한 일부 소프트웨어를 수신하기 위해 제 2 서비스 제공자로부터 허락을 획득하는 단계; 및
    제 3 서비스 제공자로부터 상기 일부 소프트웨어를 다운로드하는 단계를 포함하는, 컴퓨터-판독가능 매체.
  33. 제 30 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 제 1 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위한 일부 소프트웨어를 획득하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
  34. 제 33 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 제 1 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하기 위해 일부 소프트웨어를 수신하기 위한 허락을 획득하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
  35. 제 30 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 컴퓨터 시스템이 상기 일부 콘텐츠에 접근하는 것을 가능하게 할 수 있는 서비스에 접근하기 위해 서비스 바인딩에 관한 정보를 상기 제 1 서비스 제공자로부터 수신하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
  36. 제 35 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 서비스 바인딩을 준수하는 방식으로 상기 요청을 자동적으로 만드는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
  37. 제 30 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 제 1 서비스 제공자와 신뢰 관계를 협상하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
  38. 프로그램 코드를 포함하는 컴퓨터-판독가능 매체로서, 상기 프로그램 코드는 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 단계들을 수행하도록 동작가능하며,
    상기 단계들은,
    제 1 디지털 저작권 관리 포맷으로 인코딩된 일부 콘텐츠에 접근하기 위한 요청을 제 2 컴퓨터 시스템으로부터 수신하는 단계로서, 상기 제 2 컴퓨터 시스템은 제 2 디지털 저작권 관리 포맷으로 인코딩된 콘텐츠를 프로세싱하는 소프트웨어를 포함하는, 상기 수신 단계;
    상기 제 2 컴퓨터 시스템과 신뢰 인증서들을 교환하는 단계;
    상기 제 2 디지털 저작권 관리 포맷에서의 라이센스를 생성하는 단계; 및
    상기 라이센스를 상기 제 2 컴퓨터 시스템으로 전송하는 단계를 포함하는, 컴퓨터-판독가능 매체.
  39. 제 38 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 제 1 디지털 저작권 관리 포맷에서의 라이센스를 상기 제 2 디지털 저작권 관리 포맷에서의 라이센스로 번역하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
  40. 제 38 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 토큰을 상기 제 2 컴퓨터 시스템으로 송신하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하며,
    상기 토큰은 상기 제 2 컴퓨터 시스템이 상기 제 2 컴퓨터 시스템에 의해 프로세싱될 수 있는 일부 콘텐츠의 버젼을 다운로드하는 것을 가능하게 하도록 구성되는, 컴퓨터-판독가능 매체.
  41. 제 38 항에 있어서,
    상기 컴퓨터 시스템에 의해 실행시에 상기 컴퓨터 시스템으로 하여금 상기 제 1 컴퓨터 시스템에 의해 제공되는 서비스에 접근을 하기 위한 서비스 바인딩에 관한 정보를 상기 제 2 컴퓨터 시스템으로 송신하는 단계를 수행하도록 동작가능한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 매체.
KR1020107024495A 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법 KR101024237B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US47635703P 2003-06-05 2003-06-05
US60/476,357 2003-06-05
US50452403P 2003-09-15 2003-09-15
US60/504,524 2003-09-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020107007909A Division KR101030203B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20100136533A true KR20100136533A (ko) 2010-12-28
KR101024237B1 KR101024237B1 (ko) 2011-03-29

Family

ID=34197784

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020107007909A KR101030203B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
KR1020057023383A KR101030941B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
KR1020087010633A KR100965437B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
KR1020107024495A KR101024237B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020107007909A KR101030203B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
KR1020057023383A KR101030941B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
KR1020087010633A KR100965437B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법

Country Status (13)

Country Link
US (22) US8234387B2 (ko)
EP (3) EP2270622B1 (ko)
JP (4) JP5242915B2 (ko)
KR (4) KR101030203B1 (ko)
CN (2) CN1860761B (ko)
AP (1) AP2005003476A0 (ko)
AU (2) AU2004264582B2 (ko)
BR (1) BRPI0410999A (ko)
CA (2) CA2776354A1 (ko)
EA (2) EA015549B1 (ko)
IL (2) IL172366A (ko)
SG (1) SG155065A1 (ko)
WO (1) WO2005017654A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093835A2 (ko) * 2011-01-03 2012-07-12 주식회사 케이티 모바일 p2p 서비스를 위한 지연-용인 콘텐츠 전송 장치 및 그 방법
WO2013048038A2 (ko) * 2011-09-26 2013-04-04 삼성에스디에스 주식회사 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
KR20200036059A (ko) * 2014-04-23 2020-04-06 버티고 미디어 인코포레이티드 합성 리브로드캐스트 및 그룹 스트림을 소셜라이징하기 위한 스마트 라우팅 동기화 시스템 및 방법

Families Citing this family (744)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
EP2110732A3 (en) * 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7133846B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US7165174B1 (en) * 1995-02-13 2007-01-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
US20060206397A1 (en) * 1995-02-13 2006-09-14 Intertrust Technologies Corp. Cryptographic methods, apparatus and systems for storage media electronic right management in closed and connected appliances
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
US6959384B1 (en) * 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US8145776B1 (en) * 1999-10-15 2012-03-27 Sony Corporation Service providing apparatus and method, and information processing apparatus and method as well as program storage medium
US6832316B1 (en) * 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
US7085839B1 (en) 2000-04-07 2006-08-01 Intertrust Technologies Corporation Network content management
US7266681B1 (en) * 2000-04-07 2007-09-04 Intertrust Technologies Corp. Network communications security agent
US7313692B2 (en) * 2000-05-19 2007-12-25 Intertrust Technologies Corp. Trust management systems and methods
US7107448B1 (en) * 2000-06-04 2006-09-12 Intertrust Technologies Corporation Systems and methods for governing content rendering, protection, and management applications
US7213266B1 (en) 2000-06-09 2007-05-01 Intertrust Technologies Corp. Systems and methods for managing and protecting electronic content and applications
US7050586B1 (en) 2000-06-19 2006-05-23 Intertrust Technologies Corporation Systems and methods for retrofitting electronic appliances to accept different content formats
US8868448B2 (en) 2000-10-26 2014-10-21 Liveperson, Inc. Systems and methods to facilitate selling of products and services
US9819561B2 (en) 2000-10-26 2017-11-14 Liveperson, Inc. System and methods for facilitating object assignments
US20060015390A1 (en) * 2000-10-26 2006-01-19 Vikas Rijsinghani System and method for identifying and approaching browsers most likely to transact business based upon real-time data mining
US7803471B1 (en) * 2000-12-28 2010-09-28 Hitachi Maxell, Ltd. Magnetic tape, its cleaning method, and optical servotrack forming/cleaning apparatus
US20050220286A1 (en) * 2001-02-27 2005-10-06 John Valdez Method and apparatus for facilitating integrated access to communications services in a communication device
US7580988B2 (en) * 2001-04-05 2009-08-25 Intertrust Technologies Corporation System and methods for managing the distribution of electronic content
US7136840B2 (en) 2001-04-20 2006-11-14 Intertrust Technologies Corp. Systems and methods for conducting transactions and communications using a trusted third party
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US7149899B2 (en) 2002-04-25 2006-12-12 Intertrust Technologies Corp. Establishing a secure channel with a human user
US7383570B2 (en) 2002-04-25 2008-06-03 Intertrust Technologies, Corp. Secure authentication systems and methods
JP3973986B2 (ja) * 2002-07-12 2007-09-12 株式会社エヌ・ティ・ティ・ドコモ ノード探索方法、ノード、通信システム及びノード探索プログラム
US8799883B2 (en) * 2003-01-31 2014-08-05 Hewlett-Packard Development Company, L. P. System and method of measuring application resource usage
US20040235563A1 (en) * 2003-02-26 2004-11-25 Blackburn Christopher W. Game update service in a service-oriented gaming network environment
CA2458793A1 (en) * 2003-02-26 2004-08-26 Wms Gaming Inc. Gaming management service in the service-oriented gaming network environment
US20060142086A1 (en) * 2003-02-26 2006-06-29 Blackburn Christopher W Progressive service in a service-oriented gaming network environment
CA2458554A1 (en) * 2003-02-26 2004-08-26 Wms Gaming Inc. 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
US20040243849A1 (en) * 2003-03-06 2004-12-02 Blackburn Christopher W. Authorization 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
US20040242331A1 (en) * 2003-03-17 2004-12-02 Blackburn Christopher W. Time service in a service-oriented gaming network environment
US7927210B2 (en) * 2003-03-17 2011-04-19 Wms Gaming Inc. Accounting service in a service-oriented gaming network environment
US8261062B2 (en) * 2003-03-27 2012-09-04 Microsoft Corporation Non-cryptographic addressing
US20040266532A1 (en) * 2003-03-27 2004-12-30 Blackburn Christopher W. Event management service in a service-oriented gaming network 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
CA2464514A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Secured networks in a gaming system environment
US20050227768A1 (en) * 2003-05-27 2005-10-13 Blackburn Christopher W Gaming network environment having a language translation service
EP2270622B1 (en) * 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US8095500B2 (en) 2003-06-13 2012-01-10 Brilliant Digital Entertainment, Inc. Methods and systems for searching content in distributed computing networks
US7729992B2 (en) * 2003-06-13 2010-06-01 Brilliant Digital Entertainment, Inc. Monitoring of computer-related resources and associated methods and systems for disbursing compensation
US7526541B2 (en) * 2003-07-29 2009-04-28 Enterasys Networks, Inc. System and method for dynamic network policy management
US8200775B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US20050038708A1 (en) * 2003-08-10 2005-02-17 Gmorpher Incorporated Consuming Web Services on Demand
JP4265326B2 (ja) * 2003-08-12 2009-05-20 株式会社日立製作所 サービス処理方法及びシステム並びにその処理プログラム
US8307109B2 (en) * 2003-08-27 2012-11-06 International Business Machines Corporation Methods and systems for real time integration services
US20060010195A1 (en) * 2003-08-27 2006-01-12 Ascential Software Corporation Service oriented architecture for a message broker in a data integration platform
US7814142B2 (en) 2003-08-27 2010-10-12 International Business Machines Corporation User interface service for a services oriented architecture in a data integration platform
US20050234969A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Services oriented architecture for handling metadata in a data integration platform
US8060553B2 (en) 2003-08-27 2011-11-15 International Business Machines Corporation Service oriented architecture for a transformation function in a data integration platform
US20050262189A1 (en) * 2003-08-27 2005-11-24 Ascential Software Corporation Server-side application programming interface for a real time data integration service
US7814470B2 (en) * 2003-08-27 2010-10-12 International Business Machines Corporation Multiple service bindings for a real time data integration service
US20050235274A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Real time data integration for inventory management
US20050223109A1 (en) * 2003-08-27 2005-10-06 Ascential Software Corporation Data integration through a services oriented architecture
US8041760B2 (en) 2003-08-27 2011-10-18 International Business Machines Corporation Service oriented architecture for a loading function in a data integration platform
US20050228808A1 (en) * 2003-08-27 2005-10-13 Ascential Software Corporation Real time data integration services for health care information data integration
US20050240354A1 (en) * 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract function in a data integration platform
US7296296B2 (en) * 2003-10-23 2007-11-13 Microsoft Corporation Protected media path and refusal response enabler
JP2005141413A (ja) * 2003-11-05 2005-06-02 Sony Corp 情報処理装置及びその情報処理方法、並びにデータ通信システム及びデータ通信方法
US9009290B2 (en) * 2004-01-22 2015-04-14 Sony Corporation Methods and apparatuses for discovery and notification of services
EP1710950A4 (en) * 2004-01-29 2009-04-29 Sony Corp INFORMATION PROCESSING APPARATUS AND METHOD
US20050177715A1 (en) * 2004-02-09 2005-08-11 Microsoft Corporation Method and system for managing identities in a peer-to-peer networking environment
US7814543B2 (en) * 2004-02-13 2010-10-12 Microsoft Corporation System and method for securing a computer system connected to a network from attacks
US7716726B2 (en) * 2004-02-13 2010-05-11 Microsoft Corporation System and method for protecting a computing device from computer exploits delivered over a networked environment in a secured communication
US7603716B2 (en) * 2004-02-13 2009-10-13 Microsoft Corporation Distributed network security service
US7243157B2 (en) * 2004-02-20 2007-07-10 Microsoft Corporation Dynamic protocol construction
US7664828B2 (en) 2004-02-20 2010-02-16 Microsoft Corporation Invalid policy detection
US7496649B2 (en) * 2004-02-20 2009-02-24 Microsoft Corporation Policy application across multiple nodes
US7653189B1 (en) * 2004-03-02 2010-01-26 Nortel Networks Limited Telecommunications service negotiation
US8862570B1 (en) 2004-03-02 2014-10-14 Rockstar Consortium Us Lp Method and apparatus for open management of multi-media services
US7738980B2 (en) * 2004-03-04 2010-06-15 Yamaha Corporation Apparatus for editing configuration data of digital mixer
US7761406B2 (en) * 2004-03-16 2010-07-20 International Business Machines Corporation Regenerating data integration functions for transfer from a data integration platform
US20050251533A1 (en) * 2004-03-16 2005-11-10 Ascential Software Corporation Migrating data integration processes through use of externalized metadata representations
US8239543B1 (en) * 2004-03-22 2012-08-07 Netapp, Inc. Method and an apparatus to provide access to operational data in a storage server via multiple data management protocols
US7565438B1 (en) * 2004-03-30 2009-07-21 Sprint Communications Company L.P. Digital rights management integrated service solution
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
JP4192841B2 (ja) * 2004-05-17 2008-12-10 ヤマハ株式会社 ミキサエンジン制御装置及びプログラム
US20060031234A1 (en) * 2004-05-21 2006-02-09 Brodi Beartusk Systems and methods for a collaborative group chat
US20060010205A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaboration impersonation
US20050262075A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration shared state management
US20050273668A1 (en) * 2004-05-20 2005-12-08 Richard Manning Dynamic and distributed managed edge computing (MEC) framework
US20050262092A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration dynamic pageflows
US20050262007A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for a collaborative call center
US20060010125A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaborative shared workspaces
US7703073B2 (en) * 2004-06-08 2010-04-20 Covia Labs, Inc. Device interoperability format rule set and method for assembling interoperability application package
US7788713B2 (en) * 2004-06-23 2010-08-31 Intel Corporation Method, apparatus and system for virtualized peer-to-peer proxy services
US7929689B2 (en) * 2004-06-30 2011-04-19 Microsoft Corporation Call signs
US8266429B2 (en) 2004-07-20 2012-09-11 Time Warner Cable, Inc. Technique for securely communicating and storing programming material in a trusted domain
US8312267B2 (en) 2004-07-20 2012-11-13 Time Warner Cable Inc. Technique for securely communicating programming content
US20060021018A1 (en) * 2004-07-21 2006-01-26 International Business Machines Corporation Method and system for enabling trust infrastructure support for federated user lifecycle management
GB2416872A (en) * 2004-07-30 2006-02-08 Canon Kk System for managing tasks on a network by using a service discover, a task manager and a service publisher
NZ553600A (en) * 2004-08-13 2008-12-24 Remasys Pty Ltd Monitoring and management of distributed information systems
US7587496B2 (en) * 2004-09-17 2009-09-08 Ricoh Company, Ltd. Transfer device, distributed processing system, transfer device control method, program, and recording medium
US7693994B2 (en) * 2004-09-17 2010-04-06 Ricoh Company, Ltd. Intermediary apparatus, distributed processing system, data-transfer method, program and recording medium
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
US20060064386A1 (en) * 2004-09-20 2006-03-23 Aaron Marking Media on demand via peering
GB2419000A (en) * 2004-10-06 2006-04-12 Hewlett Packard Development Co Proving relationships between data
KR100628655B1 (ko) * 2004-10-20 2006-09-26 한국전자통신연구원 상이한 디지털 저작권 관리 도메인간의 콘텐츠 교환을 위한방법 및 시스템
WO2006046296A1 (ja) * 2004-10-28 2006-05-04 Fujitsu Limited 移動無線通信端末及び通信制御方法
US7716727B2 (en) * 2004-10-29 2010-05-11 Microsoft Corporation Network security device and method for protecting a computing device in a networked environment
US7810164B2 (en) * 2004-11-11 2010-10-05 Yamaha Corporation User management method, and computer program having user authorization management function
GB0425860D0 (en) * 2004-11-25 2004-12-29 Ibm A method for ensuring the quality of a service in a distributed computing environment
US8533357B2 (en) * 2004-12-03 2013-09-10 Microsoft Corporation Mechanism for binding a structured data protocol to a protocol offering up byte streams
EP1672891A1 (en) * 2004-12-14 2006-06-21 Alcatel Method for transferring messages
US7562382B2 (en) * 2004-12-16 2009-07-14 International Business Machines Corporation Specializing support for a federation relationship
US7533258B2 (en) * 2005-01-07 2009-05-12 Cisco Technology, Inc. Using a network-service credential for access control
EP1681823A1 (en) * 2005-01-17 2006-07-19 Sap Ag A method and a system to organize and manage a semantic web service discovery
US20080126178A1 (en) * 2005-09-10 2008-05-29 Moore James F Surge-Based Online Advertising
US9202084B2 (en) 2006-02-01 2015-12-01 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US20080195483A1 (en) * 2005-02-01 2008-08-14 Moore James F Widget management systems and advertising systems related thereto
US20070106754A1 (en) * 2005-09-10 2007-05-10 Moore James F Security facility for maintaining health care data pools
US8140482B2 (en) 2007-09-19 2012-03-20 Moore James F Using RSS archives
US8700738B2 (en) * 2005-02-01 2014-04-15 Newsilike Media Group, Inc. Dynamic feed generation
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US20070050446A1 (en) * 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US8347088B2 (en) * 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US20080005086A1 (en) * 2006-05-17 2008-01-03 Moore James F Certificate-based search
US20080046471A1 (en) * 2005-02-01 2008-02-21 Moore James F Calendar Synchronization using Syndicated Data
US20080040151A1 (en) * 2005-02-01 2008-02-14 Moore James F Uses of managed health care data
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
EP1696633B1 (en) * 2005-02-28 2008-01-09 Alcatel Lucent Bidirectional SOAP communication by means of a single HTTP session
US7818350B2 (en) * 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US7890598B2 (en) * 2005-03-31 2011-02-15 Sony Corporation Remote access management
JP2006285607A (ja) 2005-03-31 2006-10-19 Sony Corp コンテンツ情報提供システム,コンテンツ情報提供サーバ,コンテンツ再生装置,コンテンツ情報提供方法,コンテンツ再生方法,およびコンピュータプログラム
EP1710694A3 (en) * 2005-04-08 2006-12-13 Ricoh Company, Ltd. Communication apparatus, program product for adding communication mechanism to communication apparatus for providing improved usability and communication efficiency, and recording medium storing program product
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US7899170B2 (en) * 2005-04-28 2011-03-01 Apple Inc. Multi-participant conference setup
US7864209B2 (en) * 2005-04-28 2011-01-04 Apple Inc. Audio processing in a multi-participant conference
US7817180B2 (en) * 2005-04-28 2010-10-19 Apple Inc. Video processing in a multi-participant video conference
US7949117B2 (en) * 2005-04-28 2011-05-24 Apple Inc. Heterogeneous video conferencing
US8464317B2 (en) * 2005-05-06 2013-06-11 International Business Machines Corporation Method and system for creating a protected object namespace from a WSDL resource description
US20060271939A1 (en) * 2005-05-11 2006-11-30 Eric Joris Enterprise-to-enterprise integration
US20060271384A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Reference data aggregate service population
US20060277092A1 (en) * 2005-06-03 2006-12-07 Credigy Technologies, Inc. System and method for a peer to peer exchange of consumer information
US7684421B2 (en) * 2005-06-09 2010-03-23 Lockheed Martin Corporation Information routing in a distributed environment
US20070011171A1 (en) * 2005-07-08 2007-01-11 Nurminen Jukka K System and method for operation control functionality
CA2615523A1 (en) * 2005-07-15 2007-01-25 Newsilike Media Group, Inc. Managing network-accessible services
WO2007011167A1 (en) * 2005-07-21 2007-01-25 Kyungpook National University Industry-Academic Cooperation Foundation Virtual storage system and method for searching file based on ad-hoc network
US7991764B2 (en) * 2005-07-22 2011-08-02 Yogesh Chunilal Rathod Method and system for communication, publishing, searching, sharing and dynamically providing a journal feed
US20070019641A1 (en) * 2005-07-22 2007-01-25 Rockwell Automation Technologies, Inc. Execution of industrial automation applications on communication infrastructure devices
US8046837B2 (en) 2005-08-26 2011-10-25 Sony Corporation Information processing device, information recording medium, information processing method, and computer program
JP4765485B2 (ja) * 2005-08-26 2011-09-07 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
EP1760921A3 (en) * 2005-09-05 2011-12-28 Yamaha Corporation Digital mixer with detachable memory card
US8738732B2 (en) 2005-09-14 2014-05-27 Liveperson, Inc. System and method for performing follow up based on user interactions
US9432468B2 (en) 2005-09-14 2016-08-30 Liveperson, Inc. System and method for design and dynamic generation of a web page
WO2007031981A2 (en) * 2005-09-15 2007-03-22 One-Fone Ltd. Incorporating a mobile device into a peer-to-peer network
WO2007035327A2 (en) * 2005-09-20 2007-03-29 Matsushita Electric Industrial Co., Ltd. System and method for component trust model in peer-to-peer service composition
US20070083476A1 (en) * 2005-10-11 2007-04-12 Interdigital Technology Corporation Method and system for enforcing user rights and maintaining consistency of user data in a data network
US20070088660A1 (en) * 2005-10-13 2007-04-19 Abu-Amara Hosame H Digital security for distributing media content to a local area network
TWI468969B (zh) * 2005-10-18 2015-01-11 Intertrust Tech Corp 授權對電子內容作存取的方法及授權對該電子內容執行動作之方法
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
EA012918B1 (ru) 2005-10-18 2010-02-26 Интертраст Текнолоджиз Корпорейшн Системы и способы на основе механизма управления цифровыми правами
US20070204078A1 (en) * 2006-02-09 2007-08-30 Intertrust Technologies Corporation Digital rights management engine systems and methods
CA2527447C (en) * 2005-11-18 2015-05-05 Allen Vi Cuong Chan Message oriented construction of web services
US20070130622A1 (en) * 2005-11-21 2007-06-07 Docomo Communications Laboratories Usa, Inc. Method and apparatus for verifying and ensuring safe handling of notifications
WO2007061998A2 (en) * 2005-11-22 2007-05-31 Wms Gaming Inc. A service-oriented gaming network environment
US8270293B2 (en) * 2005-12-02 2012-09-18 Panasonic Corporation Systems and methods for efficient electronic communication in a distributed routing environment
US8560456B2 (en) * 2005-12-02 2013-10-15 Credigy Technologies, Inc. System and method for an anonymous exchange of private data
US9686183B2 (en) * 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
US20080021918A1 (en) * 2005-12-23 2008-01-24 Rao Viswanatha H Enterprise service management unifier system
US20070162377A1 (en) * 2005-12-23 2007-07-12 Credigy Technologies, Inc. System and method for an online exchange of private data
US8176534B2 (en) 2005-12-30 2012-05-08 General Instrument Corporation Method and apparatus for provisioning a device to access digital rights management (DRM) services in a universal plug and play (UPnP) network
US7523121B2 (en) 2006-01-03 2009-04-21 Siperian, Inc. Relationship data management
US20070214179A1 (en) * 2006-03-10 2007-09-13 Khanh Hoang Searching, filtering, creating, displaying, and managing entity relationships across multiple data hierarchies through a user interface
US7836439B2 (en) * 2006-02-03 2010-11-16 Research In Motion Limited System and method for extending a component-based application platform with custom services
EP1818820A1 (en) * 2006-02-03 2007-08-15 Research In Motion Limited System and method for installing custom services on a component-based application platform
WO2007092542A2 (en) * 2006-02-07 2007-08-16 Wms Gaming Inc. Wager gaming network with wireless hotspots
US8360887B2 (en) * 2006-02-09 2013-01-29 Wms Gaming Inc. Wagering game server availability broadcast message system
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US7987514B2 (en) * 2006-04-04 2011-07-26 Intertrust Technologies Corp. Systems and methods for retrofitting electronic appliances to accept different content formats
US8732476B1 (en) 2006-04-13 2014-05-20 Xceedium, Inc. Automatic intervention
US8086842B2 (en) * 2006-04-21 2011-12-27 Microsoft Corporation Peer-to-peer contact exchange
CN101064660A (zh) * 2006-04-28 2007-10-31 西门子通信技术(北京)有限公司 一种实现业务互通的系统及方法
CN101443772B (zh) * 2006-05-12 2012-07-18 三星电子株式会社 管理安全数据的设备和方法
KR101346734B1 (ko) * 2006-05-12 2014-01-03 삼성전자주식회사 디지털 저작권 관리를 위한 다중 인증서 철회 목록 지원방법 및 장치
US8224975B1 (en) * 2006-05-24 2012-07-17 Avaya Inc. Web service initiation protocol for multimedia and voice communication over internet protocol
US7747736B2 (en) * 2006-06-05 2010-06-29 International Business Machines Corporation Rule and policy promotion within a policy hierarchy
US8019845B2 (en) * 2006-06-05 2011-09-13 International Business Machines Corporation Service delivery using profile based management
US9338028B2 (en) * 2006-06-19 2016-05-10 Nokia Technologies Oy Utilizing information of a local network for determining presence state
CN101094223B (zh) * 2006-06-23 2010-12-08 国际商业机器公司 在面向服务体系结构系统的服务模型中排布策略的方法和装置
US7881315B2 (en) * 2006-06-27 2011-02-01 Microsoft Corporation Local peer-to-peer digital content distribution
KR100877064B1 (ko) * 2006-07-24 2009-01-07 삼성전자주식회사 고유 id 생성 장치 및 방법
US7774463B2 (en) * 2006-07-25 2010-08-10 Sap Ag Unified meta-model for a service oriented architecture
US20080052343A1 (en) * 2006-07-27 2008-02-28 Wood Charles B Usage-Based Prioritization
US20080046437A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Manual Conflict Resolution for Background Synchronization
US20080046369A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Password Management for RSS Interfaces
US20080052162A1 (en) * 2006-07-27 2008-02-28 Wood Charles B Calendar-Based Advertising
WO2008021079A2 (en) 2006-08-08 2008-02-21 Wms Gaming Inc. Configurable wagering game manager
WO2008019158A2 (en) * 2006-08-10 2008-02-14 Intertrust Technologies Corporation Trust management systems and methods
WO2008028145A2 (en) * 2006-08-31 2008-03-06 Real Networks, Inc. Api-accessible media distribution system
JP5079427B2 (ja) * 2006-08-31 2012-11-21 アクセンチュア グローバル サーヴィシズ ゲゼルシャフト ミット ベシュレンクテル ハフツング システム用のサービスプロビジョニング及びアクチベーションエンジン
US8095626B2 (en) 2006-08-31 2012-01-10 Realnetworks, Inc. System and method for configuring a client electronic device
US20080066181A1 (en) * 2006-09-07 2008-03-13 Microsoft Corporation DRM aspects of peer-to-peer digital content distribution
US20080071897A1 (en) * 2006-09-15 2008-03-20 International Business Machines Corporation Method, system, and computer program product for federating the state and behavior of a manageable resource
US8042090B2 (en) * 2006-09-29 2011-10-18 Sap Ag Integrated configuration of cross organizational business processes
US8150798B2 (en) 2006-10-10 2012-04-03 Wells Fargo Bank, N.A. Method and system for automated coordination and organization of electronic communications in enterprises
US8520850B2 (en) 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
US20080104206A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US20080103977A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Digital rights management for distributed devices
US8732854B2 (en) 2006-11-01 2014-05-20 Time Warner Cable Enterprises Llc Methods and apparatus for premises content distribution
US20080113677A1 (en) * 2006-11-11 2008-05-15 Rajeev Kumar Madnawat Mobile to mobile service invocation framework using text messsaging
US20080133767A1 (en) * 2006-11-22 2008-06-05 Metis Enterprise Technologies Llc Real-time multicast peer-to-peer video streaming platform
US8578350B2 (en) * 2006-11-30 2013-11-05 Ncr Corporation System and method for interpreting a specification language file to implement a business system
AU2011203040B2 (en) * 2006-12-01 2012-07-05 Catch Media, Inc. Media management and tracking
KR100733742B1 (ko) * 2006-12-14 2007-06-29 주식회사 아이오셀 휴대용 정보처리 단말기 및 상기 단말기의 통신 시스템
US8625481B2 (en) * 2006-12-15 2014-01-07 Samsung Electronics Co., Ltd. Architecture for MANET over Bluetooth
KR101369399B1 (ko) * 2006-12-29 2014-03-05 삼성전자주식회사 Drm 에이전트-렌더링 어플리케이션 분리 환경에서수행되는 drm 관련 권한 통제 방법 및 시스템
EP2102783A4 (en) * 2007-01-16 2016-06-08 Ericsson Telefon Ab L M CONTROL DEVICE, REPRODUCTION DEVICE, AUTHORIZATION SERVER, METHOD FOR CONTROLLING CONTROL DEVICE, METHOD FOR CONTROLLING REPRODUCTION DEVICE, AND METHOD FOR CONTROLLING AUTHORIZATION SERVER
US8621540B2 (en) 2007-01-24 2013-12-31 Time Warner Cable Enterprises Llc Apparatus and methods for provisioning in a download-enabled system
US9088518B2 (en) * 2007-01-25 2015-07-21 Hewlett-Packard Development Company, L.P. Web services and telecom network management unification
US8117278B2 (en) * 2007-02-05 2012-02-14 Oracle International Corporation Orchestration of components to realize a content or service delivery suite
US7620659B2 (en) * 2007-02-09 2009-11-17 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US7996882B2 (en) * 2007-02-26 2011-08-09 L Heureux Israel Digital asset distribution system
US20080222237A1 (en) * 2007-03-06 2008-09-11 Microsoft Corporation Web services mashup component wrappers
US20080222599A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Web services mashup designer
KR101566171B1 (ko) * 2007-03-09 2015-11-06 삼성전자 주식회사 디지털 저작권 관리 방법 및 장치
EP1970809A1 (en) * 2007-03-14 2008-09-17 Software Ag Method and registry for policy consistency control in a Service Oriented Architecture
EP1978468A1 (en) * 2007-04-04 2008-10-08 Sap Ag A method and a system for secure execution of workflow tasks in a distributed workflow management system within a decentralized network system
US8782527B2 (en) * 2007-06-27 2014-07-15 Microsoft Corp. Collaborative phone-based file exchange
US8171177B2 (en) * 2007-06-28 2012-05-01 Apple Inc. Enhancements to data-driven media management within an electronic device
US8041438B2 (en) 2007-06-28 2011-10-18 Apple Inc. Data-driven media management within an electronic device
US8111837B2 (en) * 2007-06-28 2012-02-07 Apple Inc. Data-driven media management within an electronic device
US7861008B2 (en) 2007-06-28 2010-12-28 Apple Inc. Media management and routing within an electronic device
US20090019427A1 (en) * 2007-07-13 2009-01-15 International Business Machines Corporation Method and Apparatus for Providing Requirement Driven Static Analysis of Test Coverage for Web-Based, Distributed Processes
JP5351158B2 (ja) * 2007-07-23 2013-11-27 インタートラスト テクノロジーズ コーポレイション テザード装置システム及び方法
US9596292B1 (en) * 2007-08-03 2017-03-14 EMC IP Holding Company LLC Client-side scripts in a service-oriented API environment
CN101365128A (zh) * 2007-08-10 2009-02-11 中兴通讯股份有限公司 综合视频业务对等网络系统
US7779094B2 (en) * 2007-08-21 2010-08-17 Juniper Networks, Inc. Event problem report bundles in XML format
US8290152B2 (en) * 2007-08-30 2012-10-16 Microsoft Corporation Management system for web service developer keys
US8214475B1 (en) * 2007-08-30 2012-07-03 Amazon Technologies, Inc. System and method for managing content interest data using peer-to-peer logical mesh networks
US9160752B2 (en) * 2007-08-31 2015-10-13 International Business Machines Corporation Database authorization rules and component logic authorization rules aggregation
US7747590B2 (en) * 2007-08-31 2010-06-29 International Business Machines Corporation Avoiding redundant computation in service-oriented architectures
US9807096B2 (en) 2014-12-18 2017-10-31 Live Nation Entertainment, Inc. Controlled token distribution to protect against malicious data and resource access
US8560938B2 (en) 2008-02-12 2013-10-15 Oracle International Corporation Multi-layer XML customization
US8238313B2 (en) * 2007-09-14 2012-08-07 Intel Corporation Techniques for wireless personal area network communications with efficient spatial reuse
US9734465B2 (en) * 2007-09-14 2017-08-15 Ricoh Co., Ltd Distributed workflow-enabled system
US20090083441A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Synchronization of web service endpoints in a multi-master synchronization environment
US20090083762A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Dynamically mapping an action of a message
US7836018B2 (en) * 2007-10-24 2010-11-16 Emc Corporation Simultaneously accessing file objects through web services and file services
US20090119121A1 (en) * 2007-11-02 2009-05-07 Mwstory Co., Ltd. Peer-to-peer service providing system and method for preventing contents from being illegally distributed
US9350595B1 (en) * 2007-12-27 2016-05-24 Emc Corporation System and method for serializing and deserializing data objects into a single binary stream
US20090241159A1 (en) * 2008-03-18 2009-09-24 Avaya Technology Llc Open cable application platform set-top box (stb) personal profiles and communications applications
US20090241158A1 (en) * 2008-03-18 2009-09-24 Avaya Technology Llc Open cable application platform set-top box (stb) personal profiles and communications applications
US20090241153A1 (en) * 2008-03-18 2009-09-24 Avaya Technology Llc Open cable application platform set-top box (stb) personal profiles and communications applications
US8453188B2 (en) * 2008-01-22 2013-05-28 Avaya Inc. Open cable application platform set-top box (STB) personal profiles and communications applications
US7904597B2 (en) * 2008-01-23 2011-03-08 The Chinese University Of Hong Kong Systems and processes of identifying P2P applications based on behavioral signatures
US20110023131A1 (en) * 2008-01-24 2011-01-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and Apparatus for Checking Aggregated Web Services
US8819838B2 (en) * 2008-01-25 2014-08-26 Google Technology Holdings LLC Piracy prevention in digital rights management systems
US8788542B2 (en) 2008-02-12 2014-07-22 Oracle International Corporation Customization syntax for multi-layer XML customization
US8966465B2 (en) 2008-02-12 2015-02-24 Oracle International Corporation Customization creation and update for multi-layer XML customization
US8875306B2 (en) 2008-02-12 2014-10-28 Oracle International Corporation Customization restrictions for multi-layer XML customization
US8538998B2 (en) 2008-02-12 2013-09-17 Oracle International Corporation Caching and memory optimizations for multi-layer XML customization
US7987163B2 (en) * 2008-02-12 2011-07-26 Bae Systems Information And Electronic Systems Integration Inc. Apparatus and method for dynamic web service discovery
DE102008002787A1 (de) * 2008-02-29 2009-09-03 Schneider Electric Gmbh 4-Phasen-Interaktionsmuster basierend auf Port-Typ-Protokollen für die Verwendung von Lebenszyklen von Services, welche durch serviceorientierte Geräte bereitgestellt werden
US20090253517A1 (en) * 2008-04-04 2009-10-08 Zipzapplay, Inc. Open game engine and marketplace with associated game editing and creation tools
US8782604B2 (en) 2008-04-11 2014-07-15 Oracle International Corporation Sandbox support for metadata in running applications
JP2009278223A (ja) * 2008-05-13 2009-11-26 Panasonic Corp 電子証明システム及び秘匿通信システム
US8095518B2 (en) * 2008-06-04 2012-01-10 Microsoft Corporation Translating DRM system requirements
US8055619B2 (en) * 2008-06-05 2011-11-08 Novell, Inc. Mechanisms to support object-oriented version control operations
US8667031B2 (en) 2008-06-13 2014-03-04 Oracle International Corporation Reuse of shared metadata across applications via URL protocol
US8457034B2 (en) * 2008-06-17 2013-06-04 Raytheon Company Airborne communication network
US8700301B2 (en) 2008-06-19 2014-04-15 Microsoft Corporation Mobile computing devices, architecture and user interfaces based on dynamic direction information
US9200901B2 (en) * 2008-06-19 2015-12-01 Microsoft Technology Licensing, Llc Predictive services for devices supporting dynamic direction information
US20090315775A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US8467991B2 (en) 2008-06-20 2013-06-18 Microsoft Corporation Data services based on gesture and location information of device
US20090319166A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US20090327094A1 (en) * 2008-06-30 2009-12-31 Microsoft Corporation Platform independent ecosystem for creation, consumption and trade of user-generated digital content
US8949713B1 (en) * 2008-06-30 2015-02-03 Amazon Technologies, Inc. Version-specific request processing
US8762313B2 (en) 2008-07-25 2014-06-24 Liveperson, Inc. Method and system for creating a predictive model for targeting web-page to a surfer
US8260846B2 (en) 2008-07-25 2012-09-04 Liveperson, Inc. Method and system for providing targeted content to a surfer
CN102099802B (zh) * 2008-07-28 2015-05-27 索尼公司 访问联网服务的客户端、信息处理系统和相关联方法
US8655826B1 (en) * 2008-08-01 2014-02-18 Motion Picture Laboratories, Inc. Processing and acting on rules for content recognition systems
US8805844B2 (en) * 2008-08-04 2014-08-12 Liveperson, Inc. Expert search
US8863234B2 (en) * 2008-08-06 2014-10-14 The Boeing Company Collaborative security and decision making in a service-oriented environment
KR101614945B1 (ko) 2008-08-20 2016-04-25 삼성전자주식회사 홈 네트워크에서의 개인정보 보호 방법 및 장치
US8219572B2 (en) * 2008-08-29 2012-07-10 Oracle International Corporation System and method for searching enterprise application data
US8799319B2 (en) 2008-09-19 2014-08-05 Oracle International Corporation System and method for meta-data driven, semi-automated generation of web services based on existing applications
US8996658B2 (en) 2008-09-03 2015-03-31 Oracle International Corporation System and method for integration of browser-based thin client applications within desktop rich client architecture
US20100058466A1 (en) * 2008-09-03 2010-03-04 Dundas Data Visualization, Inc. Systems and methods for providing security for software applications
US8850553B2 (en) * 2008-09-12 2014-09-30 Microsoft Corporation Service binding
US8271609B2 (en) * 2008-09-15 2012-09-18 Oracle International Corporation Dynamic service invocation and service adaptation in BPEL SOA process
US8296317B2 (en) * 2008-09-15 2012-10-23 Oracle International Corporation Searchable object network
US8335778B2 (en) * 2008-09-17 2012-12-18 Oracle International Corporation System and method for semantic search in an enterprise application
US9122520B2 (en) 2008-09-17 2015-09-01 Oracle International Corporation Generic wait service: pausing a BPEL process
US20100094674A1 (en) * 2008-10-14 2010-04-15 Michael Marriner Supply Chain Management Systems and Methods
JP4669901B2 (ja) * 2008-10-21 2011-04-13 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US8640199B2 (en) * 2008-10-23 2014-01-28 Hewlett-Packard Developmet Company Network service provision method, network device, network server and network
US20100205024A1 (en) * 2008-10-29 2010-08-12 Haggai Shachar System and method for applying in-depth data mining tools for participating websites
US9892417B2 (en) 2008-10-29 2018-02-13 Liveperson, Inc. System and method for applying tracing tools for network locations
EP2192514A1 (en) * 2008-11-26 2010-06-02 Thomson Licensing Method and system for processing digital content according to a workflow
US8332654B2 (en) 2008-12-08 2012-12-11 Oracle International Corporation Secure framework for invoking server-side APIs using AJAX
US9124648B2 (en) 2008-12-09 2015-09-01 Microsoft Technology Licensing, Llc Soft type binding for distributed systems
JP5366024B2 (ja) * 2008-12-10 2013-12-11 日本電気株式会社 秘匿通信ネットワークにおける共有乱数管理方法および管理システム
US20100153565A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation Connection management in line-of-business
US8145593B2 (en) * 2008-12-11 2012-03-27 Microsoft Corporation Framework for web services exposing line of business applications
US8589372B2 (en) 2008-12-16 2013-11-19 Clinton A. Krislov Method and system for automated document registration with cloud computing
US8914351B2 (en) 2008-12-16 2014-12-16 Clinton A. Krislov Method and system for secure automated document registration from social media networks
US8341141B2 (en) * 2008-12-16 2012-12-25 Krislov Clinton A Method and system for automated document registration
US9444823B2 (en) * 2008-12-24 2016-09-13 Qualcomm Incorporated Method and apparatus for providing network communication association information to applications and services
US7849206B2 (en) * 2009-01-13 2010-12-07 Microsoft Corporation Service for policy rule specification evaluation and enforcement on multiple communication modes
US8140556B2 (en) * 2009-01-20 2012-03-20 Oracle International Corporation Techniques for automated generation of queries for querying ontologies
US7962574B2 (en) * 2009-01-29 2011-06-14 International Business Machines Corporation Data integration in service oriented architectures
US8301690B2 (en) * 2009-02-06 2012-10-30 International Business Machines Corporation Correlator system for web services
US20100212016A1 (en) * 2009-02-18 2010-08-19 Microsoft Corporation Content protection interoperrability
EP2401867A4 (en) * 2009-02-25 2013-11-13 Secure Content Storage Ass Llc CONTENT DISTRIBUTION WITH RENEWABLE CONTENTS
US8214401B2 (en) * 2009-02-26 2012-07-03 Oracle International Corporation Techniques for automated generation of ontologies for enterprise applications
US20120036495A2 (en) * 2009-02-27 2012-02-09 Research In Motion Limited Method, apparatus and system for supporting polymorphic elements at run-time in portable computing devices
US8458114B2 (en) * 2009-03-02 2013-06-04 Analog Devices, Inc. Analog computation using numerical representations with uncertainty
CN101499101A (zh) * 2009-03-10 2009-08-05 腾讯科技(深圳)有限公司 一种社会化网络中特征关系圈的提取方法及装置
EP2406931B1 (en) * 2009-03-12 2013-07-24 NEC Europe Ltd. Method for supporting management and exchange of distributed data of user or an entity
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8929303B2 (en) * 2009-04-06 2015-01-06 Samsung Electronics Co., Ltd. Control and data channels for advanced relay operation
US20160098298A1 (en) * 2009-04-24 2016-04-07 Pegasystems Inc. Methods and apparatus for integrated work management
EP2425348A4 (en) * 2009-05-01 2015-09-02 Ericsson Telefon Ab L M SYSTEM AND METHOD FOR PROCESSING INFORMATION PROVIDING COMPOUND SERVICE
WO2010134996A2 (en) 2009-05-20 2010-11-25 Intertrust Technologies Corporation Content sharing systems and methods
RU2549113C2 (ru) 2009-05-21 2015-04-20 Интертраст Текнолоджиз Корпорейшн Системы и способы доставки информационного содержания
US8914903B1 (en) 2009-06-03 2014-12-16 Amdocs Software System Limited System, method, and computer program for validating receipt of digital content by a client device
US9602864B2 (en) 2009-06-08 2017-03-21 Time Warner Cable Enterprises Llc Media bridge apparatus and methods
US9866609B2 (en) 2009-06-08 2018-01-09 Time Warner Cable Enterprises Llc Methods and apparatus for premises content distribution
EP2264654A1 (en) * 2009-06-19 2010-12-22 Software AG Consistency enforcement system for XML objects stored in an SOA-registry
US8571994B2 (en) * 2009-06-26 2013-10-29 Disney Enterprises, Inc. Method and system for allocating access to digital media content
US8872767B2 (en) 2009-07-07 2014-10-28 Microsoft Corporation System and method for converting gestures into digital graffiti
US10045083B2 (en) 2009-07-13 2018-08-07 The Directv Group, Inc. Satellite seeding of a peer-to-peer content distribution network
CN101599995B (zh) * 2009-07-13 2012-01-11 中国传媒大学 面向高并发检索系统的目录分发方法及网络架构
KR101377352B1 (ko) * 2009-07-17 2014-03-25 알까뗄 루슨트 중소 기업 내의 디지털 저작권 관리 수행 방법 및 장치 및 디지털 저작권 관리 서비스를 제공하기 위한 방법
US8478820B2 (en) * 2009-08-26 2013-07-02 Qualcomm Incorporated Methods and systems for service discovery management in peer-to-peer networks
KR101669287B1 (ko) * 2009-09-01 2016-11-09 삼성전자주식회사 제 3의 원격 유저 인터페이스 장치를 통한 원격 유저 인터페이스 장치의 제어 방법 및 장치
US9529694B2 (en) * 2009-09-14 2016-12-27 Oracle International Corporation Techniques for adaptive trace logging
US9734037B1 (en) * 2009-09-15 2017-08-15 Symantec Corporation Mobile application sampling for performance and network behavior profiling
US8837726B2 (en) * 2009-10-16 2014-09-16 Cisco Technology, Inc. Content protection key encryptor for security providers
KR101674903B1 (ko) * 2009-10-20 2016-11-11 삼성전자주식회사 개인 네트워크를 이용한 서비스 제공 방법 및 장치
US8055817B2 (en) * 2009-10-30 2011-11-08 International Business Machines Corporation Efficient handling of queued-direct I/O requests and completions
US8478776B2 (en) 2009-10-30 2013-07-02 Qualcomm Incorporated Methods and systems for peer-to-peer network discovery using multi-user diversity
US8825818B2 (en) * 2009-11-10 2014-09-02 Qualcomm Incorporated Host initiated connection to a device
US20110119479A1 (en) * 2009-11-17 2011-05-19 Robert Cowie EOOBE-Application to collect information for new computer and manufacturing process
US8856737B2 (en) 2009-11-18 2014-10-07 Oracle International Corporation Techniques for displaying customizations for composite applications
US9111004B2 (en) 2009-12-17 2015-08-18 International Business Machines Corporation Temporal scope translation of meta-models using semantic web technologies
US9026412B2 (en) * 2009-12-17 2015-05-05 International Business Machines Corporation Managing and maintaining scope in a service oriented architecture industry model repository
US8631071B2 (en) * 2009-12-17 2014-01-14 International Business Machines Corporation Recognition of and support for multiple versions of an enterprise canonical message model
US20130232198A1 (en) * 2009-12-21 2013-09-05 Arbitron Inc. System and Method for Peer-to-Peer Distribution of Media Exposure Data
US20110153391A1 (en) * 2009-12-21 2011-06-23 Michael Tenbrock Peer-to-peer privacy panel for audience measurement
US8307134B2 (en) 2010-01-15 2012-11-06 Apple Inc. Multiple communication interfaces on a portable storage device
US8934645B2 (en) 2010-01-26 2015-01-13 Apple Inc. Interaction of sound, silent and mute modes in an electronic device
US9244965B2 (en) * 2010-02-22 2016-01-26 Thoughtwire Holdings Corp. Method and system for sharing data between software systems
US8730928B2 (en) * 2010-02-23 2014-05-20 Qualcomm Incorporated Enhancements for increased spatial reuse in ad-hoc networks
CA2716436A1 (en) 2010-03-01 2011-09-01 Dundas Data Visualization, Inc. Systems and methods for generating data visualization dashboards
US8965801B2 (en) * 2010-03-31 2015-02-24 International Business Machines Corporation Provision of support services as a service
US8612633B2 (en) * 2010-03-31 2013-12-17 Microsoft Corporation Virtual machine fast emulation assist
US8433813B2 (en) 2010-04-07 2013-04-30 Apple Inc. Audio processing optimization in a multi-participant conference
EP2556449A1 (en) 2010-04-07 2013-02-13 Liveperson Inc. System and method for dynamically enabling customized web content and applications
US20110252117A1 (en) * 2010-04-12 2011-10-13 Swee Huat Sng Devices and Methods for Redirecting a Browser to Access Computer Resource Behind a Network Firewall
CN101833506B (zh) * 2010-05-04 2012-05-30 中国人民解放军国防科学技术大学 具备长事务特征服务接口的验证方法
US8868758B2 (en) * 2010-05-04 2014-10-21 Microsoft Corporation Provider connection framework
US9614641B2 (en) 2010-05-12 2017-04-04 Qualcomm Incorporated Resource coordination for peer-to-peer groups through distributed negotiation
US10657507B2 (en) * 2010-05-17 2020-05-19 Adobe Inc. Migration between digital rights management systems without content repackaging
US8914482B2 (en) 2010-05-26 2014-12-16 Microsoft Corporation Translation of technology-agnostic management commands into multiple management protocols
US8615585B2 (en) 2010-05-28 2013-12-24 International Business Machines Corporation Ontology based resource provisioning and management for services
US8700777B2 (en) 2010-05-28 2014-04-15 International Business Machines Corporation Extensible support system for service offerings
US8423658B2 (en) * 2010-06-10 2013-04-16 Research In Motion Limited Method and system to release internet protocol (IP) multimedia subsystem (IMS), session initiation protocol (SIP), IP-connectivity access network (IP-CAN) and radio access network (RAN) networking resources when IP television (IPTV) session is paused
US8451789B2 (en) 2010-06-15 2013-05-28 Nokia Corporation Method to request resources in TV white spaces type environment
US8874896B2 (en) 2010-06-18 2014-10-28 Intertrust Technologies Corporation Secure processing systems and methods
US9189649B2 (en) 2010-06-25 2015-11-17 International Business Machines Corporation Security model for workflows aggregating third party secure services
US8595197B2 (en) 2010-06-29 2013-11-26 International Business Machines Corporation Message validation in a service-oriented architecture
CN102143614B (zh) * 2010-07-01 2014-02-26 华为终端有限公司 升级方法和家庭网关设备
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US8799177B1 (en) * 2010-07-29 2014-08-05 Intuit Inc. Method and apparatus for building small business graph from electronic business data
WO2012021729A1 (en) * 2010-08-11 2012-02-16 Aaron Marking Simple nonautonomous peering network media
US8385286B2 (en) 2010-09-03 2013-02-26 Nokia Corporation Resource sharing between secondary networks
US8412247B2 (en) 2010-09-03 2013-04-02 Nokia Corporation Method for generating a coexistence value to define fair resource share between secondary networks
US8711736B2 (en) 2010-09-16 2014-04-29 Apple Inc. Audio processing in a multi-participant conference
US9015493B2 (en) * 2010-09-16 2015-04-21 Microsoft Technology Licensing, Llc Multitenant-aware protection service
US8984034B2 (en) * 2010-09-28 2015-03-17 Schneider Electric USA, Inc. Calculation engine and calculation providers
US20120089902A1 (en) 2010-10-07 2012-04-12 Dundas Data Visualization, Inc. Systems and methods for dashboard image generation
US9563751B1 (en) * 2010-10-13 2017-02-07 The Boeing Company License utilization management system service suite
US20120106364A1 (en) * 2010-10-29 2012-05-03 Nokia Corporation Heterogeneous coexistence management in secondary networks
US10687250B2 (en) 2010-11-05 2020-06-16 Mark Cummings Mobile base station network
US9311108B2 (en) 2010-11-05 2016-04-12 Mark Cummings Orchestrating wireless network operations
US10531516B2 (en) 2010-11-05 2020-01-07 Mark Cummings Self organizing system to implement emerging topologies
US10285094B2 (en) 2010-11-05 2019-05-07 Mark Cummings Mobile base station network
US10694402B2 (en) 2010-11-05 2020-06-23 Mark Cummings Security orchestration and network immune system deployment framework
KR101908756B1 (ko) * 2010-11-19 2018-10-16 아이오티 홀딩스, 인크. 자원의 공지 및 비공지를 위한 기계대 기계(m2m) 인터페이스 절차
US8381218B2 (en) 2010-11-30 2013-02-19 Microsoft Corporation Managing groups of computing entities
AU2011335849A1 (en) 2010-12-03 2013-07-18 Titus Inc. Method and system of hierarchical metadata management and application
US8914504B2 (en) 2010-12-08 2014-12-16 Remasys Pty Ltd End user performance monitoring for mobile applications
US8918465B2 (en) * 2010-12-14 2014-12-23 Liveperson, Inc. Authentication of service requests initiated from a social networking site
US9350598B2 (en) 2010-12-14 2016-05-24 Liveperson, Inc. Authentication of service requests using a communications initiation feature
US20120180108A1 (en) 2011-01-06 2012-07-12 Dundas Data Visualization, Inc. Methods and systems for providing a discussion thread to key performance indicator information
CN102075574B (zh) * 2011-01-07 2013-02-06 北京邮电大学 一种网络协作学习系统和网络协作学习方法
US8989884B2 (en) 2011-01-11 2015-03-24 Apple Inc. Automatic audio configuration based on an audio output device
US8363602B2 (en) 2011-01-14 2013-01-29 Nokia Corporation Method, apparatus and computer program product for resource allocation of coexistent secondary networks
JP5664273B2 (ja) * 2011-01-21 2015-02-04 ソニー株式会社 無線通信装置、プログラム、および無線通信システム
US10445113B2 (en) * 2011-03-01 2019-10-15 International Business Machines Corporation Method and system for setting the user interface to suit the display screen of an electronic device
EP2506519A1 (en) * 2011-03-25 2012-10-03 EADS Deutschland GmbH Method for determining integrity in an evolutionary collabroative information system
GB201105765D0 (en) 2011-04-05 2011-05-18 Visa Europe Ltd Payment system
JP6047553B2 (ja) 2011-04-11 2016-12-21 インタートラスト テクノロジーズ コーポレイション 情報セキュリティのためのシステムと方法
KR20120122616A (ko) * 2011-04-29 2012-11-07 삼성전자주식회사 Drm 서비스 제공 방법 및 장치
US9202024B2 (en) * 2011-05-02 2015-12-01 Inside Secure Method for playing digital contents projected with a DRM (digital rights management) scheme and corresponding system
US20120284804A1 (en) 2011-05-02 2012-11-08 Authentec, Inc. System and method for protecting digital contents with digital rights management (drm)
US8514802B2 (en) 2011-05-04 2013-08-20 Nokia Corporation Method to evaluate fairness of resource allocations in shared bands
WO2012157044A1 (ja) * 2011-05-13 2012-11-22 株式会社日立製作所 業務フロー管理方法、装置及びプログラム
US8478660B2 (en) * 2011-05-19 2013-07-02 Telefonica, S.A. Method and system for improving the selection of services in a service exchange environment
US9317341B2 (en) 2011-05-24 2016-04-19 Microsoft Technology Licensing, Llc. Dynamic attribute resolution for orchestrated management
US9325814B2 (en) * 2011-06-02 2016-04-26 Numerex Corp. Wireless SNMP agent gateway
WO2013003932A1 (en) * 2011-07-04 2013-01-10 Research In Motion Limited System and method for sharing mobile device content
US20130013450A1 (en) * 2011-07-08 2013-01-10 Mark Sears E-commerce content management system for dynamic vendor substitution
US8989091B2 (en) * 2011-07-15 2015-03-24 Telefonaktiebolaget L M Ericsson (Publ) Dynamic enablement of M2M services over 3GPP access networks
US8929831B2 (en) 2011-07-18 2015-01-06 Nokia Corporation Method, apparatus, and computer program product for wireless network discovery based on geographical location
WO2013013160A2 (en) * 2011-07-20 2013-01-24 Sonos, Inc. Web-based music partner systems and methods
US9270471B2 (en) * 2011-08-10 2016-02-23 Microsoft Technology Licensing, Llc Client-client-server authentication
CN102938878B (zh) * 2011-08-15 2016-03-23 上海贝尔股份有限公司 相邻小区的mbms服务信息通知方法以及相应的设备
JP2013058006A (ja) * 2011-09-07 2013-03-28 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
EP2763072A4 (en) * 2011-09-29 2015-09-02 Lg Electronics Inc METHOD, DEVICE AND SYSTEM FOR DOWNLOADING CONTENT BASED ON RIGHTS VERIFICATION
US8954942B2 (en) 2011-09-30 2015-02-10 Oracle International Corporation Optimizations using a BPEL compiler
JP6280038B2 (ja) * 2011-10-03 2018-02-14 トムソン ライセンシングThomson Licensing デジタルロッカーシステムにおいてコンテンツオファーを処理する方法および機器
US9832649B1 (en) * 2011-10-12 2017-11-28 Technology Business Management, Limted Secure ID authentication
DE102011054842A1 (de) * 2011-10-27 2013-05-02 Wincor Nixdorf International Gmbh Vorrichtung zur Handhabung von Wertscheinen und/oder Münzen sowie Verfahren zur Initialisierung und zum Betrieb einer solchen Vorrichtung
CN103117983B (zh) * 2011-11-16 2015-11-04 中国移动通信集团公司 数据服务请求应答方法和数据服务协议栈的设计方法
US20130151589A1 (en) * 2011-11-17 2013-06-13 Market76 Computer-based system for use in providing advisory services
US9019909B2 (en) 2011-12-06 2015-04-28 Nokia Corporation Method, apparatus, and computer program product for coexistence management
US8751800B1 (en) 2011-12-12 2014-06-10 Google Inc. DRM provider interoperability
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US8943002B2 (en) 2012-02-10 2015-01-27 Liveperson, Inc. Analytics driven engagement
US20130217331A1 (en) 2012-02-17 2013-08-22 Intertrust Technologies Corporation Systems and methods for vehicle policy enforcement
EP2817917B1 (en) 2012-02-20 2018-04-11 KL Data Security Pty Ltd Cryptographic method and system
US9350814B2 (en) 2012-02-21 2016-05-24 Qualcomm Incorporated Internet protocol connectivity over a service-oriented architecture bus
US9621458B2 (en) * 2012-02-21 2017-04-11 Qualcomm Incorporated Internet routing over a service-oriented architecture bus
WO2013126615A1 (en) * 2012-02-21 2013-08-29 Pulselocker, Inc. Method and apparatus for limiting access to data by process or computer function with stateless encryption
US8953490B2 (en) 2012-03-02 2015-02-10 Blackberry Limited Methods and apparatus for use in facilitating Wi-Fi peer-to-peer (P2P) wireless networking
US8805941B2 (en) 2012-03-06 2014-08-12 Liveperson, Inc. Occasionally-connected computing interface
US8909274B2 (en) 2012-03-12 2014-12-09 Nokia Corporation Method, apparatus, and computer program product for resource allocation conflict handling in RF frequency bands
US9473946B2 (en) 2012-03-12 2016-10-18 Nokia Technologies Oy Method, apparatus, and computer program product for temporary release of resources in radio networks
US9503512B2 (en) 2012-03-21 2016-11-22 Intertrust Technologies Corporation Distributed computation systems and methods
CN104255012A (zh) * 2012-03-29 2014-12-31 英特尔公司 设备间分接服务层
US8813246B2 (en) 2012-04-23 2014-08-19 Inside Secure Method for playing digital contents protected with a DRM (digital right management) scheme and corresponding system
US9563336B2 (en) 2012-04-26 2017-02-07 Liveperson, Inc. Dynamic user interface customization
US9672196B2 (en) 2012-05-15 2017-06-06 Liveperson, Inc. Methods and systems for presenting specialized content using campaign metrics
US9813496B2 (en) * 2012-05-23 2017-11-07 Infosys Limited Method and apparatus for collaborating in a work environment
JP5398919B1 (ja) * 2012-06-07 2014-01-29 株式会社東芝 セキュリティアダプタプログラム及び装置
CN104603813A (zh) 2012-06-11 2015-05-06 英特托拉斯技术公司 数据收集和分析的系统和方法
US20140007197A1 (en) * 2012-06-29 2014-01-02 Michael John Wray Delegation within a computing environment
WO2014004965A1 (en) 2012-06-29 2014-01-03 Interdigital Patent Holdings, Inc. Service-based discovery in networks
US20140012708A1 (en) 2012-07-06 2014-01-09 Oracle International Corporation Service design and order fulfillment system
JP2015531909A (ja) 2012-07-20 2015-11-05 インタートラスト テクノロジーズ コーポレイション 情報ターゲティングシステムおよび方法
DE102012015527B4 (de) * 2012-08-04 2017-02-09 Audi Ag Verfahren zum Nutzen eines zweiten Infotainmentsystems mittels eines ersten Infotainmentsystems und Fahrzeug
US9378073B2 (en) 2012-08-14 2016-06-28 International Business Machines Corporation Remote procedure call for a distributed system
US8942701B2 (en) 2012-08-14 2015-01-27 Nokia Corporation Method, apparatus, and computer program product for transferring responsibility between network controllers managing coexistence in radio frequency spectrum
US9178771B2 (en) * 2012-08-23 2015-11-03 Hewlett-Packard Development Company, L.P. Determining the type of a network tier
CN102868594B (zh) * 2012-09-12 2015-05-27 浪潮(北京)电子信息产业有限公司 一种消息处理方法和装置
US10164929B2 (en) * 2012-09-28 2018-12-25 Avaya Inc. Intelligent notification of requests for real-time online interaction via real-time communications and/or markup protocols, and related methods, systems, and computer-readable media
US9363133B2 (en) 2012-09-28 2016-06-07 Avaya Inc. Distributed application of enterprise policies to Web Real-Time Communications (WebRTC) interactive sessions, and related methods, systems, and computer-readable media
RU2519470C1 (ru) * 2012-10-17 2014-06-10 Общество с ограниченной ответственностью "Сетевизор" Способ защищенного распространения мультимедийной информации посредством развертывания децентрализованной сети типа peer-to-peer и децентрализованная сеть для осуществления способа
US9532224B2 (en) * 2012-11-05 2016-12-27 Electronics And Telecommunications Research Institute Method of device-to-device discovery and apparatus thereof
WO2014074513A1 (en) 2012-11-06 2014-05-15 Intertrust Technologies Corporation Activity recognition systems and methods
WO2014074722A1 (en) 2012-11-07 2014-05-15 Intertrust Technologies Corporation Vehicle charging path optimization systems and methods
CN104903908A (zh) 2012-11-07 2015-09-09 英特托拉斯技术公司 个人数据管理系统及方法
US9107089B2 (en) 2012-11-09 2015-08-11 Nokia Technologies Oy Method, apparatus, and computer program product for location based query for interferer discovery in coexistence management system
US9565472B2 (en) 2012-12-10 2017-02-07 Time Warner Cable Enterprises Llc Apparatus and methods for content transfer protection
WO2014097444A1 (ja) * 2012-12-20 2014-06-26 三菱電機株式会社 制御システム及びプログラム送信装置及び認証サーバ及びプログラム保護方法及びプログラム送信方法及びプログラム送信装置のプログラム
WO2014124318A1 (en) 2013-02-08 2014-08-14 Interdigital Patent Holdings, Inc. METHOD AND APPARATUS FOR INCORPORATING AN INTERNET OF THINGS (IoT) SERVICE INTERFACE PROTOCOL LAYER IN A NODE
US9584544B2 (en) * 2013-03-12 2017-02-28 Red Hat Israel, Ltd. Secured logical component for security in a virtual environment
WO2014165284A1 (en) 2013-03-12 2014-10-09 Intertrust Technologies Corporation Secure transaction systems and methods
US20140282786A1 (en) 2013-03-12 2014-09-18 Time Warner Cable Enterprises Llc Methods and apparatus for providing and uploading content to personalized network storage
US8799053B1 (en) * 2013-03-13 2014-08-05 Paul R. Goldberg Secure consumer data exchange method, apparatus, and system therfor
US9626489B2 (en) 2013-03-13 2017-04-18 Intertrust Technologies Corporation Object rendering systems and methods
US9294458B2 (en) 2013-03-14 2016-03-22 Avaya Inc. Managing identity provider (IdP) identifiers for web real-time communications (WebRTC) interactive flows, and related methods, systems, and computer-readable media
EP2975854B1 (en) 2013-03-15 2019-09-18 Panasonic Intellectual Property Management Co., Ltd. Content distribution method, content distribution system, source device, and sink device
US9215075B1 (en) 2013-03-15 2015-12-15 Poltorak Technologies Llc System and method for secure relayed communications from an implantable medical device
US9130900B2 (en) * 2013-03-15 2015-09-08 Bao Tran Assistive agent
US9299049B2 (en) * 2013-03-15 2016-03-29 Sap Se Contract-based process integration
US9066153B2 (en) 2013-03-15 2015-06-23 Time Warner Cable Enterprises Llc Apparatus and methods for multicast delivery of content in a content delivery network
US10368255B2 (en) 2017-07-25 2019-07-30 Time Warner Cable Enterprises Llc Methods and apparatus for client-based dynamic control of connections to co-existing radio access networks
US9596077B2 (en) * 2013-04-22 2017-03-14 Unisys Corporation Community of interest-based secured communications over IPsec
US9306981B2 (en) 2013-04-24 2016-04-05 Intertrust Technologies Corporation Bioinformatic processing systems and methods
US9300555B2 (en) 2013-06-05 2016-03-29 Globalfoundries Inc. Peer-to-peer ad hoc network system for monitoring a presence of members of a group
US10205624B2 (en) 2013-06-07 2019-02-12 Avaya Inc. Bandwidth-efficient archiving of real-time interactive flows, and related methods, systems, and computer-readable media
CN104243144B (zh) * 2013-06-08 2018-03-13 科大国盾量子技术股份有限公司 一种基于Android智能移动终端的通信密钥分配方法
US10191733B2 (en) 2013-06-25 2019-01-29 Sap Se Software change process orchestration in a runtime environment
US9558460B2 (en) * 2013-06-28 2017-01-31 Lexmark International Technology Sarl Methods of analyzing software systems having service components
US9961052B2 (en) * 2013-06-28 2018-05-01 Extreme Networks, Inc. Virtualized host ID key sharing
US9525718B2 (en) 2013-06-30 2016-12-20 Avaya Inc. Back-to-back virtual web real-time communications (WebRTC) agents, and related methods, systems, and computer-readable media
US9065969B2 (en) 2013-06-30 2015-06-23 Avaya Inc. Scalable web real-time communications (WebRTC) media engines, and related methods, systems, and computer-readable media
US8949998B2 (en) * 2013-07-01 2015-02-03 Medidata Solutions, Inc. Method and system for maintaining data in a substantiated state
US9112840B2 (en) 2013-07-17 2015-08-18 Avaya Inc. Verifying privacy of web real-time communications (WebRTC) media channels via corresponding WebRTC data channels, and related methods, systems, and computer-readable media
US9313568B2 (en) 2013-07-23 2016-04-12 Chicago Custom Acoustics, Inc. Custom earphone with dome in the canal
EP3025525B1 (en) * 2013-07-25 2018-12-12 Convida Wireless, LLC End-to-end m2m service layer sessions
US9614890B2 (en) 2013-07-31 2017-04-04 Avaya Inc. Acquiring and correlating web real-time communications (WEBRTC) interactive flow characteristics, and related methods, systems, and computer-readable media
US9467450B2 (en) * 2013-08-21 2016-10-11 Medtronic, Inc. Data driven schema for patient data exchange system
US9531808B2 (en) 2013-08-22 2016-12-27 Avaya Inc. Providing data resource services within enterprise systems for resource level sharing among multiple applications, and related methods, systems, and computer-readable media
US9363150B2 (en) * 2013-09-05 2016-06-07 International Business Machines Corporation Policy driven auto-transitioning framework for governed objects in service registries
KR20180095126A (ko) * 2013-09-20 2018-08-24 콘비다 와이어리스, 엘엘씨 관심에 기초한 향상된 m2m 콘텐츠 관리
US10225212B2 (en) 2013-09-26 2019-03-05 Avaya Inc. Providing network management based on monitoring quality of service (QOS) characteristics of web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
US10033693B2 (en) 2013-10-01 2018-07-24 Nicira, Inc. Distributed identity-based firewalls
US10263952B2 (en) 2013-10-31 2019-04-16 Avaya Inc. Providing origin insight for web applications via session traversal utilities for network address translation (STUN) messages, and related methods, systems, and computer-readable media
CN110581766A (zh) * 2013-10-31 2019-12-17 美国唯美安视国际有限公司 用于跨多个条件访问服务器的同步的密钥推导的系统和方法
US9769214B2 (en) 2013-11-05 2017-09-19 Avaya Inc. Providing reliable session initiation protocol (SIP) signaling for web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
CN103595714A (zh) * 2013-11-08 2014-02-19 福建省视通光电网络有限公司 一种通过web服务通道实现数据传输的方法
KR101510336B1 (ko) * 2013-11-14 2015-04-07 현대자동차 주식회사 차량용 운전자 지원 시스템의 검사 장치
CN103618795B (zh) * 2013-11-29 2018-06-05 百度在线网络技术(北京)有限公司 跨设备的文件处理方法、客户端和服务器
US9697061B1 (en) 2013-12-18 2017-07-04 Amazon Technologies, Inc. Parameter delegation for encapsulated services
CN105830107A (zh) * 2013-12-19 2016-08-03 维萨国际服务协会 基于云的交易方法和系统
US9922322B2 (en) 2013-12-19 2018-03-20 Visa International Service Association Cloud-based transactions with magnetic secure transmission
US10129243B2 (en) 2013-12-27 2018-11-13 Avaya Inc. Controlling access to traversal using relays around network address translation (TURN) servers using trusted single-use credentials
KR101548210B1 (ko) * 2014-01-06 2015-08-31 고려대학교 산학협력단 왕복 시간 변화를 이용하여 익명 네트워크를 통한 우회 접속을 탐지하는 방법
US9826051B2 (en) * 2014-01-21 2017-11-21 Amadeus S.A.S. Content integration framework
WO2015116855A1 (en) 2014-01-29 2015-08-06 Intertrust Technologies Corporation Secure application processing systems and methods
EP3117575B1 (en) * 2014-03-14 2018-08-22 Telefonaktiebolaget LM Ericsson (publ) Systems and methods related to establishing a temporary trust relationship between a network-based media service and a digital media renderer
JP5765457B2 (ja) * 2014-03-19 2015-08-19 株式会社ナカヨ 情報収集方法、および情報端末
US11386442B2 (en) 2014-03-31 2022-07-12 Liveperson, Inc. Online behavioral predictor
US9749363B2 (en) 2014-04-17 2017-08-29 Avaya Inc. Application of enterprise policies to web real-time communications (WebRTC) interactive sessions using an enterprise session initiation protocol (SIP) engine, and related methods, systems, and computer-readable media
US10581927B2 (en) 2014-04-17 2020-03-03 Avaya Inc. Providing web real-time communications (WebRTC) media services via WebRTC-enabled media servers, and related methods, systems, and computer-readable media
WO2015179637A1 (en) 2014-05-21 2015-11-26 Visa International Service Association Offline authentication
US9621940B2 (en) 2014-05-29 2017-04-11 Time Warner Cable Enterprises Llc Apparatus and methods for recording, accessing, and delivering packetized content
CA2893912C (en) 2014-06-09 2022-10-18 Dundas Data Visualization, Inc. Systems and methods for optimizing data analysis
US11540148B2 (en) 2014-06-11 2022-12-27 Time Warner Cable Enterprises Llc Methods and apparatus for access point location
JP6560259B2 (ja) * 2014-06-13 2019-08-14 コンヴィーダ ワイヤレス, エルエルシー 自動サービスプロファイリングおよびオーケストレーション
US9215228B1 (en) * 2014-06-17 2015-12-15 Cisco Technology, Inc. Authentication of devices having unequal capabilities
US9912705B2 (en) 2014-06-24 2018-03-06 Avaya Inc. Enhancing media characteristics during web real-time communications (WebRTC) interactive sessions by using session initiation protocol (SIP) endpoints, and related methods, systems, and computer-readable media
US10068012B2 (en) 2014-06-27 2018-09-04 Sonos, Inc. Music discovery
GB2530245A (en) 2014-07-15 2016-03-23 Piksel Inc Controlling delivery of encrypted media assets
CN104092777B (zh) * 2014-07-29 2017-12-26 深圳市富途网络科技有限公司 客户端的布局设定与服务器同步存储的方法及其系统
US9344455B2 (en) * 2014-07-30 2016-05-17 Motorola Solutions, Inc. Apparatus and method for sharing a hardware security module interface in a collaborative network
US9531749B2 (en) 2014-08-07 2016-12-27 International Business Machines Corporation Prevention of query overloading in a server application
US9775029B2 (en) 2014-08-22 2017-09-26 Visa International Service Association Embedding cloud-based functionalities in a communication device
CN105407444A (zh) * 2014-09-05 2016-03-16 青岛海尔智能家电科技有限公司 一种聚合响应的方法和装置
US20160105400A1 (en) * 2014-10-08 2016-04-14 Time Warner Cable Enterprises Llc Apparatus and methods for data transfer beteween a plurality of user devices
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US9781004B2 (en) * 2014-10-16 2017-10-03 Cisco Technology, Inc. Discovering and grouping application endpoints in a network environment
US9935833B2 (en) 2014-11-05 2018-04-03 Time Warner Cable Enterprises Llc Methods and apparatus for determining an optimized wireless interface installation configuration
US20160132317A1 (en) 2014-11-06 2016-05-12 Intertrust Technologies Corporation Secure Application Distribution Systems and Methods
US9609541B2 (en) 2014-12-31 2017-03-28 Motorola Solutions, Inc. Method and apparatus for device collaboration via a hybrid network
WO2016112338A1 (en) 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US9521167B2 (en) 2015-01-20 2016-12-13 Cisco Technology, Inc. Generalized security policy user interface
US9401933B1 (en) 2015-01-20 2016-07-26 Cisco Technology, Inc. Classification of security policies across multiple security products
US9571524B2 (en) 2015-01-20 2017-02-14 Cisco Technology, Inc. Creation of security policy templates and security policies based on the templates
US9680875B2 (en) 2015-01-20 2017-06-13 Cisco Technology, Inc. Security policy unification across different security products
US9531757B2 (en) 2015-01-20 2016-12-27 Cisco Technology, Inc. Management of security policies across multiple security products
US10069928B1 (en) * 2015-01-21 2018-09-04 Amazon Technologies, Inc. Translating requests/responses between communication channels having different protocols
EP3261605B2 (en) 2015-02-26 2022-04-20 SiO2 Medical Products, Inc. Cycloolefin polymer container with a scratch resistant and anti-static coating
US9906604B2 (en) * 2015-03-09 2018-02-27 Dell Products L.P. System and method for dynamic discovery of web services for a management console
US10630686B2 (en) * 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US20160267481A1 (en) * 2015-03-13 2016-09-15 Svetoslav Lazarov Gramenov System and method for distributed money supply
CN104717073B (zh) * 2015-03-19 2018-09-18 张文 个人信息共享系统及其个人信息共享方法和身份认证方法
US10063375B2 (en) * 2015-04-20 2018-08-28 Microsoft Technology Licensing, Llc Isolation of trusted input/output devices
JP6629345B2 (ja) * 2015-04-23 2020-01-15 コンヴィーダ ワイヤレス, エルエルシー M2mサービスを追加するためのデバイスおよび方法
US9641540B2 (en) 2015-05-19 2017-05-02 Cisco Technology, Inc. User interface driven translation, comparison, unification, and deployment of device neutral network security policies
JP6762963B2 (ja) 2015-06-02 2020-09-30 ライブパーソン, インコーポレイテッド 一貫性重み付けおよびルーティング規則に基づく動的通信ルーティング
US10255921B2 (en) * 2015-07-31 2019-04-09 Google Llc Managing dialog data providers
CN106407832B (zh) * 2015-08-03 2021-03-09 阿里巴巴集团控股有限公司 一种用于数据访问控制的方法及设备
US10909186B2 (en) 2015-09-30 2021-02-02 Oracle International Corporation Multi-tenant customizable composites
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
US10656935B2 (en) 2015-10-13 2020-05-19 Home Box Office, Inc. Maintaining and updating software versions via hierarchy
US11171924B2 (en) 2015-10-14 2021-11-09 Adp, Inc. Customized web services gateway
US10348816B2 (en) 2015-10-14 2019-07-09 Adp, Llc Dynamic proxy server
US10623528B2 (en) 2015-10-14 2020-04-14 Adp, Llc Enterprise application ecosystem operating system
US9860346B2 (en) 2015-10-14 2018-01-02 Adp, Llc Dynamic application programming interface builder
US10317243B2 (en) 2015-10-15 2019-06-11 Intertrust Technologies Corporation Sensor information management systems and methods
US10600442B2 (en) * 2015-10-20 2020-03-24 Sony Corporation Information processing device, information processing method, and program
US9342388B1 (en) * 2015-12-02 2016-05-17 International Business Machines Corporation Dynamic queue alias
US9986578B2 (en) 2015-12-04 2018-05-29 Time Warner Cable Enterprises Llc Apparatus and methods for selective data network access
US10305996B2 (en) * 2015-12-07 2019-05-28 Prn Productions, Inc. System, device, and method for service coordination
US10225084B1 (en) * 2015-12-29 2019-03-05 EMC IP Holding Company LLC Method, apparatus and computer program product for securely sharing a content item
US9992232B2 (en) 2016-01-14 2018-06-05 Cisco Technology, Inc. Policy block creation with context-sensitive policy line classification
US9918345B2 (en) 2016-01-20 2018-03-13 Time Warner Cable Enterprises Llc Apparatus and method for wireless network services in moving vehicles
US10860086B2 (en) 2016-02-26 2020-12-08 Fornetix Llc Policy-enabled encryption keys having complex logical operations
US10880281B2 (en) 2016-02-26 2020-12-29 Fornetix Llc Structure of policies for evaluating key attributes of encryption keys
US10492034B2 (en) 2016-03-07 2019-11-26 Time Warner Cable Enterprises Llc Apparatus and methods for dynamic open-access networks
US20170296458A1 (en) * 2016-04-14 2017-10-19 The Procter & Gamble Company Cosmetic composition
US10762559B2 (en) 2016-04-15 2020-09-01 Adp, Llc Management of payroll lending within an enterprise system
US10187367B2 (en) 2016-05-11 2019-01-22 Iheartmedia Management Services, Inc. Licensing authentication via mobile device
US20170329526A1 (en) * 2016-05-13 2017-11-16 Hewlett Packard Enterprise Development Lp Interoperable capabilities
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10630085B2 (en) 2016-06-06 2020-04-21 Omnicharge, Inc. Portable power solutions
US10476965B1 (en) * 2016-06-06 2019-11-12 Omnicharge, Inc. Apparatus, system and method for sharing tangible objects
US11237595B2 (en) 2016-06-06 2022-02-01 Omnicharge, Inc. Portable power solutions
US10164858B2 (en) 2016-06-15 2018-12-25 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and diagnosing a wireless network
RU2649788C1 (ru) * 2016-06-16 2018-04-04 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запроса на транзакцию в распределенных системах обработки данных
US11128444B2 (en) * 2016-06-30 2021-09-21 Intel Corporation Technologies for serializable binary data distribution
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
AU2017295842A1 (en) 2016-07-11 2018-11-01 Visa International Service Association Encryption key exchange process using access device
WO2018010957A1 (en) * 2016-07-12 2018-01-18 Deutsche Telekom Ag Method for providing an enhanced level of authentication related to a secure software client application provided by an application distribution entity in order to be transmitted to a client computing device; system, application distribution entity, software client application, and client computing device for providing an enhanced level of authentication related to a secure software client application, program and computer program product
WO2018010958A2 (en) * 2016-07-12 2018-01-18 Deutsche Telekom Ag Method for detecting and/or identifying data streams within a telecommunications network; system, telecommunications network, and content server entity for detecting and/or identifying data streams within a telecommunications network, program and computer program product
CN116528220A (zh) 2016-08-14 2023-08-01 利维帕尔森有限公司 用于移动应用程序的实时远程控制的方法和系统
US10880284B1 (en) * 2016-08-19 2020-12-29 Amazon Technologies, Inc. Repurposing limited functionality devices as authentication factors
US10044832B2 (en) 2016-08-30 2018-08-07 Home Box Office, Inc. Data request multiplexing
CN106375458B (zh) * 2016-09-08 2019-12-13 上海银赛计算机科技有限公司 服务调用系统、方法及装置
CN106384028A (zh) * 2016-09-12 2017-02-08 浪潮软件股份有限公司 一种支持多租户的统一身份认证服务实现的方法
CN109983777B (zh) * 2016-10-12 2022-09-27 皇家Kpn公司 启用媒体编排的方法、客户端设备和控制器系统
US10719616B2 (en) 2016-10-25 2020-07-21 Beatport, LLC Secure content access system
CN115632686A (zh) 2016-11-03 2023-01-20 康维达无线有限责任公司 Nr中的帧结构
US10715607B2 (en) * 2016-12-06 2020-07-14 Nicira, Inc. Performing context-rich attribute-based services on a host
CN107025559B (zh) 2017-01-26 2020-09-18 创新先进技术有限公司 一种业务处理方法及装置
US11765406B2 (en) 2017-02-17 2023-09-19 Interdigital Madison Patent Holdings, Sas Systems and methods for selective object-of-interest zooming in streaming video
US10623264B2 (en) 2017-04-20 2020-04-14 Cisco Technology, Inc. Policy assurance for service chaining
US10826788B2 (en) 2017-04-20 2020-11-03 Cisco Technology, Inc. Assurance of quality-of-service configurations in a network
US10560328B2 (en) 2017-04-20 2020-02-11 Cisco Technology, Inc. Static network policy analysis for networks
US10698740B2 (en) * 2017-05-02 2020-06-30 Home Box Office, Inc. Virtual graph nodes
US11467868B1 (en) * 2017-05-03 2022-10-11 Amazon Technologies, Inc. Service relationship orchestration service
US10581694B2 (en) 2017-05-31 2020-03-03 Cisco Technology, Inc. Generation of counter examples for network intent formal equivalence failures
US10439875B2 (en) 2017-05-31 2019-10-08 Cisco Technology, Inc. Identification of conflict rules in a network intent formal equivalence failure
US10623271B2 (en) 2017-05-31 2020-04-14 Cisco Technology, Inc. Intra-priority class ordering of rules corresponding to a model of network intents
US10505816B2 (en) 2017-05-31 2019-12-10 Cisco Technology, Inc. Semantic analysis to detect shadowing of rules in a model of network intents
US20180351788A1 (en) 2017-05-31 2018-12-06 Cisco Technology, Inc. Fault localization in large-scale network policy deployment
US10554483B2 (en) 2017-05-31 2020-02-04 Cisco Technology, Inc. Network policy analysis for networks
US10693738B2 (en) 2017-05-31 2020-06-23 Cisco Technology, Inc. Generating device-level logical models for a network
US10812318B2 (en) 2017-05-31 2020-10-20 Cisco Technology, Inc. Associating network policy objects with specific faults corresponding to fault localizations in large-scale network deployment
US10645547B2 (en) 2017-06-02 2020-05-05 Charter Communications Operating, Llc Apparatus and methods for providing wireless service in a venue
US10638361B2 (en) 2017-06-06 2020-04-28 Charter Communications Operating, Llc Methods and apparatus for dynamic control of connections to co-existing radio access networks
US11469986B2 (en) 2017-06-16 2022-10-11 Cisco Technology, Inc. Controlled micro fault injection on a distributed appliance
US10587621B2 (en) 2017-06-16 2020-03-10 Cisco Technology, Inc. System and method for migrating to and maintaining a white-list network security model
US10498608B2 (en) 2017-06-16 2019-12-03 Cisco Technology, Inc. Topology explorer
US10574513B2 (en) 2017-06-16 2020-02-25 Cisco Technology, Inc. Handling controller and node failure scenarios during data collection
US10686669B2 (en) 2017-06-16 2020-06-16 Cisco Technology, Inc. Collecting network models and node information from a network
US10547715B2 (en) 2017-06-16 2020-01-28 Cisco Technology, Inc. Event generation in response to network intent formal equivalence failures
US11645131B2 (en) 2017-06-16 2023-05-09 Cisco Technology, Inc. Distributed fault code aggregation across application centric dimensions
US10904101B2 (en) 2017-06-16 2021-01-26 Cisco Technology, Inc. Shim layer for extracting and prioritizing underlying rules for modeling network intents
US11150973B2 (en) 2017-06-16 2021-10-19 Cisco Technology, Inc. Self diagnosing distributed appliance
US10567229B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validating endpoint configurations between nodes
US10333787B2 (en) 2017-06-19 2019-06-25 Cisco Technology, Inc. Validation of L3OUT configuration for communications outside a network
US10505817B2 (en) 2017-06-19 2019-12-10 Cisco Technology, Inc. Automatically determining an optimal amount of time for analyzing a distributed network environment
US11283680B2 (en) 2017-06-19 2022-03-22 Cisco Technology, Inc. Identifying components for removal in a network configuration
US10812336B2 (en) 2017-06-19 2020-10-20 Cisco Technology, Inc. Validation of bridge domain-L3out association for communication outside a network
US10652102B2 (en) 2017-06-19 2020-05-12 Cisco Technology, Inc. Network node memory utilization analysis
US10805160B2 (en) 2017-06-19 2020-10-13 Cisco Technology, Inc. Endpoint bridge domain subnet validation
US10218572B2 (en) 2017-06-19 2019-02-26 Cisco Technology, Inc. Multiprotocol border gateway protocol routing validation
US10554493B2 (en) 2017-06-19 2020-02-04 Cisco Technology, Inc. Identifying mismatches between a logical model and node implementation
US10560355B2 (en) 2017-06-19 2020-02-11 Cisco Technology, Inc. Static endpoint validation
US10536337B2 (en) 2017-06-19 2020-01-14 Cisco Technology, Inc. Validation of layer 2 interface and VLAN in a networked environment
US10411996B2 (en) 2017-06-19 2019-09-10 Cisco Technology, Inc. Validation of routing information in a network fabric
US10528444B2 (en) 2017-06-19 2020-01-07 Cisco Technology, Inc. Event generation in response to validation between logical level and hardware level
US10348564B2 (en) 2017-06-19 2019-07-09 Cisco Technology, Inc. Validation of routing information base-forwarding information base equivalence in a network
US10623259B2 (en) 2017-06-19 2020-04-14 Cisco Technology, Inc. Validation of layer 1 interface in a network
US10437641B2 (en) 2017-06-19 2019-10-08 Cisco Technology, Inc. On-demand processing pipeline interleaved with temporal processing pipeline
US10567228B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validation of cross logical groups in a network
US10341184B2 (en) 2017-06-19 2019-07-02 Cisco Technology, Inc. Validation of layer 3 bridge domain subnets in in a network
US10673702B2 (en) 2017-06-19 2020-06-02 Cisco Technology, Inc. Validation of layer 3 using virtual routing forwarding containers in a network
US11343150B2 (en) 2017-06-19 2022-05-24 Cisco Technology, Inc. Validation of learned routes in a network
US10644946B2 (en) 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
US10700933B2 (en) 2017-06-19 2020-06-30 Cisco Technology, Inc. Validating tunnel endpoint addresses in a network fabric
CN107277153B (zh) * 2017-06-30 2020-05-26 百度在线网络技术(北京)有限公司 用于提供语音服务的方法、装置和服务器
US10846387B2 (en) 2017-07-12 2020-11-24 At&T Intellectual Property I, L.P. Managing access based on activities of entities
US10587484B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Anomaly detection and reporting in a network assurance appliance
US10587456B2 (en) 2017-09-12 2020-03-10 Cisco Technology, Inc. Event clustering for a network assurance platform
US10554477B2 (en) 2017-09-13 2020-02-04 Cisco Technology, Inc. Network assurance event aggregator
US10333833B2 (en) 2017-09-25 2019-06-25 Cisco Technology, Inc. Endpoint path assurance
US11379808B2 (en) * 2017-10-24 2022-07-05 Spotify Ab System and method for use of prepare-proceed workflow to orchestrate operations associated with a media content environment
FR3073998B1 (fr) * 2017-11-23 2019-11-01 In Webo Technologies Procede numerique de controle d'acces a un objet, une ressource ou service par un utilisateur
US10657261B2 (en) 2017-11-30 2020-05-19 Mocana Corporation System and method for recording device lifecycle transactions as versioned blocks in a blockchain network using a transaction connector and broker service
US10162968B1 (en) 2017-11-30 2018-12-25 Mocana Corporation System and method for securely updating a registered device using a development system and a release management system operated by an update provider and an update publisher
US11102053B2 (en) 2017-12-05 2021-08-24 Cisco Technology, Inc. Cross-domain assurance
CN108108444B (zh) * 2017-12-22 2021-12-21 国云科技股份有限公司 一种企业业务单元自适应系统及其实现方法
US10873509B2 (en) 2018-01-17 2020-12-22 Cisco Technology, Inc. Check-pointing ACI network state and re-execution from a check-pointed state
US10572495B2 (en) 2018-02-06 2020-02-25 Cisco Technology Inc. Network assurance database version compatibility
EP3776199B1 (en) 2018-03-28 2023-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for multi-provider virtual network services
WO2019185144A1 (en) * 2018-03-28 2019-10-03 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for multi-provider virtual network services
US10261775B1 (en) * 2018-04-17 2019-04-16 Hewlett Packard Enterprise Development Lp Upgrade orchestrator
US20190347599A1 (en) * 2018-05-08 2019-11-14 Palantir Technologies Inc Systems and methods for routing support tickets
WO2019217995A1 (en) * 2018-05-15 2019-11-21 Ixup Ip Pty Ltd "cryptographic key management"
US11748455B2 (en) * 2018-05-25 2023-09-05 Intertrust Technologies Corporation Digital rights management systems and methods using efficient messaging architectures
US10812315B2 (en) 2018-06-07 2020-10-20 Cisco Technology, Inc. Cross-domain network assurance
US11868321B2 (en) 2018-06-12 2024-01-09 Salesforce, Inc. Cryptographically secure multi-tenant data exchange platform
US11477667B2 (en) 2018-06-14 2022-10-18 Mark Cummings Using orchestrators for false positive detection and root cause analysis
US10659298B1 (en) 2018-06-27 2020-05-19 Cisco Technology, Inc. Epoch comparison for network events
US10911495B2 (en) 2018-06-27 2021-02-02 Cisco Technology, Inc. Assurance of security rules in a network
US11019027B2 (en) 2018-06-27 2021-05-25 Cisco Technology, Inc. Address translation for external network appliance
US11218508B2 (en) 2018-06-27 2022-01-04 Cisco Technology, Inc. Assurance of security rules in a network
US11044273B2 (en) 2018-06-27 2021-06-22 Cisco Technology, Inc. Assurance of security rules in a network
US10904070B2 (en) 2018-07-11 2021-01-26 Cisco Technology, Inc. Techniques and interfaces for troubleshooting datacenter networks
US10826770B2 (en) 2018-07-26 2020-11-03 Cisco Technology, Inc. Synthesis of models for networks using automated boolean learning
US10616072B1 (en) 2018-07-27 2020-04-07 Cisco Technology, Inc. Epoch data interface
US10778652B2 (en) * 2018-07-31 2020-09-15 Bae Systems Information And Electronic Systems Integration Inc. Secure computational workflows
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
CN109309712B (zh) * 2018-09-07 2022-06-17 平安科技(深圳)有限公司 基于接口异步调用的数据传输方法、服务器及存储介质
US11100091B2 (en) 2018-09-19 2021-08-24 Salesforce.Com, Inc. Lightweight node in a multi-tenant blockchain network
US11080247B2 (en) * 2018-09-19 2021-08-03 Salesforce.Com, Inc. Field-based peer permissions in a blockchain network
US11809409B2 (en) 2018-09-19 2023-11-07 Salesforce, Inc. Multi-tenant distributed ledger interfaces
US11157484B2 (en) 2018-09-19 2021-10-26 Salesforce.Com, Inc. Advanced smart contract with decentralized ledger in a multi-tenant environment
CN109409084B (zh) * 2018-09-21 2021-06-25 中国科学院信息工程研究所 一种检测返回地址被篡改的链式数据存储结构
US10965771B2 (en) * 2018-09-25 2021-03-30 International Business Machines Corporation Dynamically switchable transmission data formats in a computer system
WO2020068251A1 (en) 2018-09-27 2020-04-02 Convida Wireless, Llc Sub-band operations in unlicensed spectrums of new radio
US11640429B2 (en) 2018-10-11 2023-05-02 Home Box Office, Inc. Graph views to improve user interface responsiveness
US10949327B2 (en) * 2018-10-19 2021-03-16 Oracle International Corporation Manipulation of complex variables in orchestration applications
CN109302416A (zh) * 2018-11-13 2019-02-01 深圳市华师兄弟文化传播有限公司 自品牌分享系统
WO2020117549A1 (en) 2018-12-06 2020-06-11 Mocana Corporation System and method for zero touch provisioning of iot devices
CN109739478B (zh) * 2018-12-24 2022-12-06 网易(杭州)网络有限公司 前端项目自动化构建方法、装置、存储介质及电子设备
CN109842615B (zh) * 2018-12-29 2021-10-15 四川航天拓鑫玄武岩实业有限公司 一种通信装置及通信方法
CN109739666A (zh) * 2019-01-09 2019-05-10 广州虎牙信息科技有限公司 单例方法的跨进程调用方法、装置、设备及存储介质
WO2020180754A1 (en) * 2019-03-01 2020-09-10 Singulardtv, Gmbh Decentralized digital content distribution system and process using block chains and encrpyted peer-to-peer network
CN110113247B (zh) * 2019-04-18 2021-07-20 深圳市梦网科技发展有限公司 富媒体信息收发系统、发送、展示方法及终端设备
US11321307B2 (en) * 2019-06-25 2022-05-03 Optum, Inc. Orchestrated consensus validation for distributed ledgers using heterogeneous validation pools
CA3084976A1 (en) * 2019-07-01 2021-01-01 Next Pathway Inc. System and method for automated source code generation to provide service layer functionality for legacy computing systems in a service-oriented architecture
TWI714184B (zh) * 2019-07-25 2020-12-21 中華電信股份有限公司 多階層網路樣式比對方法
US11469908B2 (en) 2019-08-07 2022-10-11 Bank Of America Corporation Equipment onboarding and deployment security system
CN110535842B (zh) * 2019-08-20 2021-11-19 之江实验室 一种基于抽样检测的拟态安全系统和方法
CN110768956B (zh) * 2019-09-19 2022-09-27 苏宁云计算有限公司 数据服务提供方法、装置、计算机设备和存储介质
JP2022549671A (ja) * 2019-09-25 2022-11-28 コモンウェルス サイエンティフィック アンド インダストリアル リサーチ オーガナイゼーション ブラウザアプリケーション用の暗号化サービス
GB2588107B (en) * 2019-10-07 2022-11-02 British Telecomm Secure publish-subscribe communication methods and apparatus
US20220394031A1 (en) * 2019-11-11 2022-12-08 Schneider Electric USA, Inc. Secure data orchestrator for iot networks
CN111193720A (zh) * 2019-12-16 2020-05-22 中国电子科技集团公司第三十研究所 一种基于安全代理的信任服务适配方法
US11539718B2 (en) 2020-01-10 2022-12-27 Vmware, Inc. Efficiently performing intrusion detection
US11513817B2 (en) 2020-03-04 2022-11-29 Kyndryl, Inc. Preventing disruption within information technology environments
CN111464652A (zh) * 2020-04-07 2020-07-28 中国建设银行股份有限公司 一种银行保管箱业务提供方法及装置
DE102020111020A1 (de) * 2020-04-22 2021-10-28 Endress+Hauser Conducta Gmbh+Co. Kg Verfahren zur Überprüfung der authentischen Herkunft von elektronischen Modulen eines modular aufgebauten Feldgeräts der Automatisierungstechnik
US11546315B2 (en) * 2020-05-28 2023-01-03 Hewlett Packard Enterprise Development Lp Authentication key-based DLL service
CN111722946A (zh) * 2020-06-28 2020-09-29 深圳壹账通智能科技有限公司 分布式事务处理方法、装置、计算机设备及可读存储介质
WO2022009122A1 (en) * 2020-07-07 2022-01-13 Calgary Scientific Inc Highly scalable, peer-based, real-time agent architecture
CN113923250B (zh) * 2020-07-07 2023-04-07 华为技术有限公司 一种辅助网络服务编排的方法、装置及系统
US11290481B2 (en) 2020-07-09 2022-03-29 Bank Of America Corporation Security threat detection by converting scripts using validation graphs
US11368310B2 (en) 2020-07-11 2022-06-21 Bank Of America Corporation Data transfer between computing nodes of a distributed computing system
CN111914435B (zh) * 2020-08-18 2022-08-16 哈尔滨工业大学 面向时空界的多方协作式服务价值-质量-能力建模方法
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
CN113657960A (zh) * 2020-08-28 2021-11-16 支付宝(杭州)信息技术有限公司 一种基于可信资产数据的匹配方法、装置及设备
US11734356B2 (en) * 2020-09-11 2023-08-22 Jpmorgan Chase Bank, N.A. System and method for implementing an open policy agent bridge
CN116249981A (zh) * 2020-09-30 2023-06-09 字节跳动有限公司 视频编解码中的图像分割
US11392573B1 (en) 2020-11-11 2022-07-19 Wells Fargo Bank, N.A. Systems and methods for generating and maintaining data objects
US11640565B1 (en) 2020-11-11 2023-05-02 Wells Fargo Bank, N.A. Systems and methods for relationship mapping
US11646866B2 (en) 2020-11-17 2023-05-09 International Business Machines Corporation Blockchain based service reservation and delegation
CN112579087A (zh) * 2020-12-25 2021-03-30 四川长虹电器股份有限公司 基于Lua脚本的炒菜机人机界面的开发方法
US11456931B1 (en) * 2021-04-06 2022-09-27 Amdocs Development Limited System, method and computer program for orchestrating loosely coupled services
CN113805870B (zh) * 2021-09-18 2024-01-30 上海熙菱信息技术有限公司 一种基于bff架构的服务接口编排方法和系统
US20230117615A1 (en) * 2021-10-19 2023-04-20 At&T Intellectual Property I, L.P. Api driven subscriber ims registration status changes and ims routing steering
US20230168656A1 (en) * 2021-11-30 2023-06-01 UiPath, Inc. Automatically assigning natural language labels to non-conforming behavior of processes
US11907229B2 (en) * 2022-03-31 2024-02-20 Gm Cruise Holdings Llc System and method for platform-independent access bindings
US12022016B2 (en) 2022-04-07 2024-06-25 Bank Of America Corporation System and method for managing exception request blocks in a blockchain network
US20230359513A1 (en) * 2022-05-04 2023-11-09 Marsh (USA) Inc. Orchestration system and method to provide client independent api integration model
CN114849649B (zh) * 2022-05-05 2023-06-02 浙江师范大学 具有zsd拓扑结构的离子杂化多孔材料及其制备方法和应用
CN114760290B (zh) * 2022-05-07 2024-04-12 北京字跳网络技术有限公司 一种应用开发方法、装置、电子设备及存储介质
WO2023224680A1 (en) * 2022-05-18 2023-11-23 Margo Networks Pvt. Ltd. Peer to peer (p2p) encrypted data transfer/offload system and method
CN115277745A (zh) * 2022-06-24 2022-11-01 湖南大学 一种支持异步调度的服务总线编排系统及方法
TWI818798B (zh) * 2022-11-08 2023-10-11 英業達股份有限公司 權限管理方法

Family Cites Families (273)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US599949A (en) * 1898-03-01 Edward a
US476357A (en) 1892-06-07 Photograph-holder
US4327508A (en) * 1980-12-08 1982-05-04 J. I. Case Company Trencher digging chain sprocket drive
US4977594A (en) 1986-10-14 1990-12-11 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US5050213A (en) 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4827508A (en) 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
US5940504A (en) 1991-07-01 1999-08-17 Infologic Software, Inc. Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling system
JPH07230380A (ja) 1994-02-15 1995-08-29 Internatl Business Mach Corp <Ibm> 適用業務プログラムの利用管理方法およびシステム
JP2853727B2 (ja) 1994-02-22 1999-02-03 日本ビクター株式会社 再生プロテクト方法及びプロテクト再生装置
JPH07319691A (ja) 1994-03-29 1995-12-08 Toshiba Corp 資源保護装置、特権保護装置、ソフトウェア利用法制御装置、及びソフトウェア利用法制御システム
US5473692A (en) * 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
FR2721722B1 (fr) * 1994-06-22 1996-09-13 France Telecom Procédé de réalisation d'une matrice de composants à puits quantiques de structure verticale "tout optique".
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US5634012A (en) 1994-11-23 1997-05-27 Xerox Corporation System for controlling the distribution and use of digital works having a fee reporting mechanism
US5638443A (en) 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
US5629980A (en) 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
US5715403A (en) 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7069451B1 (en) 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7165174B1 (en) 1995-02-13 2007-01-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
EP2110732A3 (en) 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7124302B2 (en) 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5530235A (en) 1995-02-16 1996-06-25 Xerox Corporation Interactive contents revealing storage device
IL113572A (en) * 1995-05-01 1999-03-12 Metalink Ltd Symbol decoder
US5534975A (en) 1995-05-26 1996-07-09 Xerox Corporation Document processing system utilizing document service cards to provide document processing services
US5757915A (en) * 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
US5638446A (en) * 1995-08-28 1997-06-10 Bell Communications Research, Inc. Method for the secure distribution of electronic files in a distributed environment
US5774652A (en) * 1995-09-29 1998-06-30 Smith; Perry Restricted access computer system
US6807534B1 (en) 1995-10-13 2004-10-19 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US5765152A (en) 1995-10-13 1998-06-09 Trustees Of Dartmouth College System and method for managing copyrighted electronic media
US5825883A (en) 1995-10-31 1998-10-20 Interval Systems, Inc. Method and apparatus that accounts for usage of digital applications
AUPN955096A0 (en) * 1996-04-29 1996-05-23 Telefonaktiebolaget Lm Ericsson (Publ) Telecommunications information dissemination system
EP1640984B1 (en) 1996-05-15 2015-12-02 Intertrust Technologies Corporation Storage media electronic rights management
CN1953417B (zh) 1996-09-04 2010-12-29 英特托拉斯技术公司 一种从用户站点向外部站点发布使用数据的方法
US6052780A (en) 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US6006332A (en) 1996-10-21 1999-12-21 Case Western Reserve University Rights management system for digital media
JPH10133955A (ja) 1996-10-29 1998-05-22 Matsushita Electric Ind Co Ltd 可搬型メディア駆動装置とその方法、及び可搬型メディアとネットワークの連携装置とその方法
US6023765A (en) 1996-12-06 2000-02-08 The United States Of America As Represented By The Secretary Of Commerce Implementation of role-based access control in multi-level secure systems
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US5937041A (en) * 1997-03-10 1999-08-10 Northern Telecom, Limited System and method for retrieving internet data files using a screen-display telephone terminal
US5999949A (en) 1997-03-14 1999-12-07 Crandall; Gary E. Text file compression system utilizing word terminators
US6735253B1 (en) 1997-05-16 2004-05-11 The Trustees Of Columbia University In The City Of New York Methods and architecture for indexing and editing compressed video over the world wide web
AU7957998A (en) 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US6044469A (en) * 1997-08-29 2000-03-28 Preview Software Software publisher or distributor configurable software security mechanism
US5941951A (en) 1997-10-31 1999-08-24 International Business Machines Corporation Methods for real-time deterministic delivery of multimedia data in a client/server system
US7092914B1 (en) 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6112181A (en) 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
JP3733715B2 (ja) 1997-11-12 2006-01-11 富士ゼロックス株式会社 文書開示装置、文書開示プログラムを格納した媒体および文書開示方法
US6065120A (en) * 1997-12-09 2000-05-16 Phone.Com, Inc. Method and system for self-provisioning a rendezvous to ensure secure access to information in a database from multiple devices
US6769019B2 (en) 1997-12-10 2004-07-27 Xavier Ferguson Method of background downloading of information from a computer network
US5991399A (en) 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US6233577B1 (en) * 1998-02-17 2001-05-15 Phone.Com, Inc. Centralized certificate management system for two-way interactive communication devices in data networks
US7809138B2 (en) 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
CN1145359C (zh) 1998-03-16 2004-04-07 联信技术公司 用于连续控制和保护媒体内容的方法和装置
JP3809008B2 (ja) * 1998-03-27 2006-08-16 株式会社アドバンテスト カストマトレイストッカ
US7606355B2 (en) * 1998-04-22 2009-10-20 Echarge Corporation Method and apparatus for ordering goods, services and content over an internetwork
US6223608B1 (en) * 1998-06-02 2001-05-01 Mitsubishi Denki Kabushiki Kaisha Torque detector
US20040107368A1 (en) 1998-06-04 2004-06-03 Z4 Technologies, Inc. Method for digital rights management including self activating/self authentication software
AU763294B2 (en) * 1998-07-22 2003-07-17 Panasonic Intellectual Property Corporation Of America Digital data recording device and method for protecting copyright and easily reproducing encrypted digital data and computer readable recording medium recording program
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6119108A (en) 1998-10-01 2000-09-12 Aires Systems Corporation Secure electronic publishing system
US6985953B1 (en) 1998-11-30 2006-01-10 George Mason University System and apparatus for storage and transfer of secure data on web
US7058414B1 (en) 2000-05-26 2006-06-06 Freescale Semiconductor, Inc. Method and system for enabling device functions based on distance information
EP1157499A4 (en) * 1999-03-10 2003-07-09 Digimarc Corp PROCESS FOR SIGNAL PROCESSING, DEVICES AND APPLICATIONS FOR THE MANAGEMENT OF DIGITAL RIGHTS
US6223291B1 (en) * 1999-03-26 2001-04-24 Motorola, Inc. Secure wireless electronic-commerce system with digital product certificates and digital license certificates
US7073063B2 (en) * 1999-03-27 2006-07-04 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like
US20020198791A1 (en) * 1999-04-21 2002-12-26 Perkowski Thomas J. Internet-based consumer product brand marketing communication system which enables manufacturers, retailers and their respective agents, and consumers to carry out product-related functions along the demand side of the retail chain in an integrated manner
US6883100B1 (en) * 1999-05-10 2005-04-19 Sun Microsystems, Inc. Method and system for dynamic issuance of group certificates
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
AU6104800A (en) 1999-07-16 2001-02-05 Intertrust Technologies Corp. Trusted storage systems and methods
AU6614600A (en) 1999-07-29 2001-02-19 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
ATE306098T1 (de) 1999-07-30 2005-10-15 Intertrust Tech Corp Verfahren und systeme zur transaktionsaufzeichnungsübertragung unter anwendung von schwellen und einem mehrstufigen protokoll
US20080133417A1 (en) 1999-10-18 2008-06-05 Emergent Music Llc System to determine quality through reselling of items
US6842863B1 (en) 1999-11-23 2005-01-11 Microsoft Corporation Certificate reissuance for checking the status of a certificate in financial transactions
US6331227B1 (en) * 1999-12-14 2001-12-18 Epion Corporation Enhanced etching/smoothing of dielectric surfaces
US6996720B1 (en) * 1999-12-17 2006-02-07 Microsoft Corporation System and method for accessing protected content in a rights-management architecture
US6832316B1 (en) 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
US6772340B1 (en) 2000-01-14 2004-08-03 Microsoft Corporation Digital rights management system operating on computing device and having black box tied to computing device
US20010033554A1 (en) 2000-02-18 2001-10-25 Arun Ayyagari Proxy-bridge connecting remote users to a limited connectivity network
US7426750B2 (en) * 2000-02-18 2008-09-16 Verimatrix, Inc. Network-based content distribution system
IL135555A0 (en) * 2000-04-09 2001-05-20 Vidius Inc Preventing unauthorized access to data sent via computer networks
JP3711866B2 (ja) 2000-04-10 2005-11-02 日本電気株式会社 プラグアンドプレイ機能を有するフレームワークおよびその再構成方法
EP1234247A2 (en) 2000-04-18 2002-08-28 Portalplayer, Inc. Downloaded media protocol integration system and method
AU2001259590A1 (en) 2000-05-08 2001-11-20 Leap Wireless International, Inc. Method of converting html/xml to hdml/wml in real-time for display on mobile devices
US7313692B2 (en) 2000-05-19 2007-12-25 Intertrust Technologies Corp. Trust management systems and methods
US7496637B2 (en) 2000-05-31 2009-02-24 Oracle International Corp. Web service syndication system
US6961858B2 (en) 2000-06-16 2005-11-01 Entriq, Inc. Method and system to secure content for distribution via a network
CA2808275C (en) * 2000-06-22 2016-11-15 Microsoft Corporation Distributed computing services platform
WO2002003604A2 (en) * 2000-06-29 2002-01-10 Cachestream Corporation Digital rights management
AU7182701A (en) 2000-07-06 2002-01-21 David Paul Felsher Information record infrastructure, system and method
US6976164B1 (en) 2000-07-19 2005-12-13 International Business Machines Corporation Technique for handling subsequent user identification and password requests with identity change within a certificate-based host session
EP1189432A3 (en) 2000-08-14 2004-10-20 Matsushita Electric Industrial Co., Ltd. A hierarchical encryption scheme for secure distribution of predetermined content
US7010808B1 (en) 2000-08-25 2006-03-07 Microsoft Corporation Binding digital content to a portable storage device or the like in a digital rights management (DRM) system
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
JP4269501B2 (ja) 2000-09-07 2009-05-27 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
GB2366969A (en) 2000-09-14 2002-03-20 Phocis Ltd Copyright protection for digital content distributed over a network
US7171558B1 (en) 2000-09-22 2007-01-30 International Business Machines Corporation Transparent digital rights management for extendible content viewers
GB0024919D0 (en) 2000-10-11 2000-11-22 Sealedmedia Ltd Method of further securing an operating system
GB0024918D0 (en) 2000-10-11 2000-11-22 Sealedmedia Ltd Method of providing java tamperproofing
SE519748C2 (sv) 2000-10-23 2003-04-08 Volvo Technology Corp Förfarande för kontroll av behörighet för tillträde till ett objekt samt datorprogramprodukten för utförande av förfaranden
EP2378733B1 (en) 2000-11-10 2013-03-13 AOL Inc. Digital content distribution and subscription system
US20030177187A1 (en) 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
US7356690B2 (en) 2000-12-11 2008-04-08 International Business Machines Corporation Method and system for managing a distributed trust path locator for public key certificates relating to the trust path of an X.509 attribute certificate
JP2002207637A (ja) 2001-01-11 2002-07-26 Hitachi Ltd 情報開示方法、情報開示装置および情報サービス方法
US20030220880A1 (en) * 2002-01-17 2003-11-27 Contentguard Holdings, Inc. Networked services licensing system and method
US7774279B2 (en) * 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
CA2371124A1 (en) * 2001-02-09 2002-08-09 Itaru Kawakami Information processing method/apparatus and program
US7395430B2 (en) 2001-08-28 2008-07-01 International Business Machines Corporation Secure authentication using digital certificates
GB2372343A (en) 2001-02-17 2002-08-21 Hewlett Packard Co Determination of a trust value of a digital certificate
US7308717B2 (en) 2001-02-23 2007-12-11 International Business Machines Corporation System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
GB2373136A (en) * 2001-03-07 2002-09-11 Int Computers Ltd Distributed computing using wireless mobile devices
WO2002076003A2 (en) * 2001-03-19 2002-09-26 Imesh Ltd. System and method for peer-to-peer file exchange mechanism from multiple sources
US7065507B2 (en) 2001-03-26 2006-06-20 Microsoft Corporation Supervised license acquisition in a digital rights management system on a computing device
US7509492B2 (en) * 2001-03-27 2009-03-24 Microsoft Corporation Distributed scalable cryptographic access control
US20020144108A1 (en) 2001-03-29 2002-10-03 International Business Machines Corporation Method and system for public-key-based secure authentication to distributed legacy applications
TW569119B (en) * 2001-03-29 2004-01-01 Sony Corp Data processing device
US20020144283A1 (en) * 2001-03-30 2002-10-03 Intertainer, Inc. Content distribution system
US7580988B2 (en) 2001-04-05 2009-08-25 Intertrust Technologies Corporation System and methods for managing the distribution of electronic content
DE60236381D1 (de) 2001-04-12 2010-06-24 Research In Motion Ltd System und Verfahren zum dynamischen Schieben von Informationen auf drahtlose Datenübertragungsvorrichtungen
US20020157002A1 (en) 2001-04-18 2002-10-24 Messerges Thomas S. System and method for secure and convenient management of digital electronic content
US7136840B2 (en) 2001-04-20 2006-11-14 Intertrust Technologies Corp. Systems and methods for conducting transactions and communications using a trusted third party
US7043050B2 (en) * 2001-05-02 2006-05-09 Microsoft Corporation Software anti-piracy systems and methods utilizing certificates with digital content
US6934702B2 (en) * 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
US7249100B2 (en) * 2001-05-15 2007-07-24 Nokia Corporation Service discovery access to user location
US7152046B2 (en) 2001-05-31 2006-12-19 Contentguard Holdings, Inc. Method and apparatus for tracking status of resource in a system for managing use of the resources
WO2002101494A2 (en) 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Protected content distribution system
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US7203966B2 (en) * 2001-06-27 2007-04-10 Microsoft Corporation Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices
US6916100B2 (en) * 2001-06-27 2005-07-12 Donnelly Corporation Vehicle exterior rearview mirror assembly
US7421411B2 (en) 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US20030009681A1 (en) 2001-07-09 2003-01-09 Shunji Harada Digital work protection system, recording medium apparatus, transmission apparatus, and playback apparatus
EP1407341B1 (en) * 2001-07-17 2016-08-31 Panasonic Intellectual Property Corporation of America Content usage device and network system, and license information acquisition method
DE60216940T2 (de) * 2001-08-01 2007-07-05 Matsushita Electric Industrial Co., Ltd., Kadoma Einrichtung und verfahren zur verwaltung des inhaltsbenutzungsrechts
JP2003044436A (ja) * 2001-08-02 2003-02-14 Sony Corp 認証処理方法、および情報処理装置、並びにコンピュータ・プログラム
JP4280036B2 (ja) 2001-08-03 2009-06-17 パナソニック株式会社 アクセス権制御システム
US20030037139A1 (en) * 2001-08-20 2003-02-20 Koninklijke Philips Electronics N.V. Content distribution model
US7085969B2 (en) * 2001-08-27 2006-08-01 Industrial Technology Research Institute Encoding and decoding apparatus and method
US7035944B2 (en) * 2001-09-19 2006-04-25 International Business Machines Corporation Programmatic management of software resources in a content framework environment
JP2003099693A (ja) * 2001-09-20 2003-04-04 Fujitsu Ltd 電子決済方法
CA2404552C (en) * 2001-09-21 2008-12-09 Corel Corporation System and method for secure communication
US20030065956A1 (en) * 2001-09-28 2003-04-03 Abhijit Belapurkar Challenge-response data communication protocol
US7359517B1 (en) 2001-10-09 2008-04-15 Adobe Systems Incorporated Nestable skeleton decryption keys for digital rights management
US20030079133A1 (en) 2001-10-18 2003-04-24 International Business Machines Corporation Method and system for digital rights management in content distribution application
KR100689649B1 (ko) * 2001-10-18 2007-03-09 매크로비젼 코포레이션 디지털 권리 관리 호환성을 제공하기 위한 시스템들 및방법들
US7487363B2 (en) 2001-10-18 2009-02-03 Nokia Corporation System and method for controlled copying and moving of content between devices and domains based on conditional encryption of content key depending on usage
CN1579095A (zh) 2001-10-29 2005-02-09 松下电器产业株式会社 基线内容保护和复制管理数字视频广播的装置
US20030084172A1 (en) * 2001-10-29 2003-05-01 Sun Microsystem, Inc., A Delaware Corporation Identification and privacy in the World Wide Web
US7254614B2 (en) * 2001-11-20 2007-08-07 Nokia Corporation Web services push gateway
EP1485833A4 (en) 2001-11-20 2005-10-12 Contentguard Holdings Inc EXTENSIBLE RIGHTS EXPRESSION PROCESSING SYSTEM
JP4664572B2 (ja) 2001-11-27 2011-04-06 富士通株式会社 文書配布方法および文書管理方法
US20030126086A1 (en) 2001-12-31 2003-07-03 General Instrument Corporation Methods and apparatus for digital rights management
US7088823B2 (en) 2002-01-09 2006-08-08 International Business Machines Corporation System and method for secure distribution and evaluation of compressed digital information
AU2003202815A1 (en) * 2002-01-12 2003-07-24 Coretrust, Inc. Method and system for the information protection of digital content
US7496757B2 (en) 2002-01-14 2009-02-24 International Business Machines Corporation Software verification system, method and computer program element
US7603469B2 (en) 2002-01-15 2009-10-13 International Business Machines Corporation Provisioning aggregated services in a distributed computing environment
US20030140119A1 (en) 2002-01-18 2003-07-24 International Business Machines Corporation Dynamic service discovery
US20030145044A1 (en) 2002-01-28 2003-07-31 Nokia Corporation Virtual terminal for mobile network interface between mobile terminal and software applications node
US20030144859A1 (en) * 2002-01-31 2003-07-31 Meichun Hsu E-service publication and discovery method and system
US20030172127A1 (en) * 2002-02-06 2003-09-11 Northrup Charles J. Execution of process by references to directory service
US6996544B2 (en) * 2002-02-27 2006-02-07 Imagineer Software, Inc. Multiple party content distribution system and method with rights management features
KR100467929B1 (ko) 2002-02-28 2005-01-24 주식회사 마크애니 디지털 컨텐츠의 보호 및 관리를 위한 시스템
US7159224B2 (en) 2002-04-09 2007-01-02 Sun Microsystems, Inc. Method, system, and articles of manufacture for providing a servlet container based web service endpoint
US7472270B2 (en) * 2002-04-16 2008-12-30 Microsoft Corporation Secure transmission of digital content between a host and a peripheral by way of a digital rights management (DRM) system
US8656178B2 (en) 2002-04-18 2014-02-18 International Business Machines Corporation Method, system and program product for modifying content usage conditions during content distribution
US7369851B2 (en) 2002-04-19 2008-05-06 Hewlett-Packard Development Company, L.P. Communications network capable of determining SIM card changes in electronic devices
US7383570B2 (en) 2002-04-25 2008-06-03 Intertrust Technologies, Corp. Secure authentication systems and methods
US7149899B2 (en) 2002-04-25 2006-12-12 Intertrust Technologies Corp. Establishing a secure channel with a human user
US7076249B2 (en) * 2002-05-06 2006-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for generating management data for drifting mobile radios
US8611919B2 (en) * 2002-05-23 2013-12-17 Wounder Gmbh., Llc System, method, and computer program product for providing location based services and mobile e-commerce
US7529929B2 (en) 2002-05-30 2009-05-05 Nokia Corporation System and method for dynamically enforcing digital rights management rules
US7296154B2 (en) 2002-06-24 2007-11-13 Microsoft Corporation Secure media path methods, systems, and architectures
AU2003267975A1 (en) * 2002-06-27 2004-01-19 Piranha Media Distribution, Inc. Method and apparatus for the free licensing of digital media content
US7353402B2 (en) * 2002-06-28 2008-04-01 Microsoft Corporation Obtaining a signed rights label (SRL) for digital content and obtaining a digital license corresponding to the content based on the SRL in a digital rights management system
US7631318B2 (en) * 2002-06-28 2009-12-08 Microsoft Corporation Secure server plug-in architecture for digital rights management systems
AU2002950202A0 (en) 2002-07-11 2002-09-12 University Of Wollongong Methods for standard mechanisms for digital item manipulation and handling
WO2004021861A2 (en) * 2002-09-03 2004-03-18 Vit Lauermann Targeted release
US7401221B2 (en) 2002-09-04 2008-07-15 Microsoft Corporation Advanced stream format (ASF) data stream header object protection
US20040216127A1 (en) * 2002-09-10 2004-10-28 Chutney Technologies Method and apparatus for accelerating web services
RU2005112255A (ru) 2002-09-23 2005-09-20 Конинклейке Филипс Электроникс Н.В. (Nl) Санкционированные домены, основывающиеся на сертификатах
AU2003260880A1 (en) 2002-09-30 2004-04-19 Koninklijke Philips Electronics N.V. Secure proximity verification of a node on a network
US20060021065A1 (en) 2002-10-22 2006-01-26 Kamperman Franciscus Lucas A J Method and device for authorizing content operations
US8356067B2 (en) 2002-10-24 2013-01-15 Intel Corporation Servicing device aggregates
US20040088175A1 (en) 2002-11-01 2004-05-06 Thomas Messerges Digital-rights management
US20040088541A1 (en) * 2002-11-01 2004-05-06 Thomas Messerges Digital-rights management system
US20040143546A1 (en) * 2002-11-01 2004-07-22 Wood Jeff A. Easy user activation of electronic commerce services
US7757075B2 (en) 2002-11-15 2010-07-13 Microsoft Corporation State reference
US7899187B2 (en) 2002-11-27 2011-03-01 Motorola Mobility, Inc. Domain-based digital-rights management system with easy and secure device enrollment
US7493289B2 (en) * 2002-12-13 2009-02-17 Aol Llc Digital content store system
US20040117490A1 (en) * 2002-12-13 2004-06-17 General Instrument Corporation Method and system for providing chaining of rules in a digital rights management system
EP1576447A1 (en) 2002-12-17 2005-09-21 Koninklijke Philips Electronics N.V. System to allow content sharing
CN100353273C (zh) 2002-12-30 2007-12-05 皇家飞利浦电子股份有限公司 在授权域内划分的权利
US8364951B2 (en) * 2002-12-30 2013-01-29 General Instrument Corporation System for digital rights management using distributed provisioning and authentication
US8468227B2 (en) 2002-12-31 2013-06-18 Motorola Solutions, Inc. System and method for rendering content on multiple devices
US20040128546A1 (en) * 2002-12-31 2004-07-01 International Business Machines Corporation Method and system for attribute exchange in a heterogeneous federated environment
TWI349204B (en) 2003-01-10 2011-09-21 Panasonic Corp Group admission system and server and client therefor
US20040139312A1 (en) * 2003-01-14 2004-07-15 General Instrument Corporation Categorization of host security levels based on functionality implemented inside secure hardware
US7383586B2 (en) 2003-01-17 2008-06-03 Microsoft Corporation File system operation and digital rights management (DRM)
US20050004873A1 (en) 2003-02-03 2005-01-06 Robin Pou Distribution and rights management of digital content
US20040158731A1 (en) 2003-02-11 2004-08-12 Microsoft Corporation Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system
US7577999B2 (en) * 2003-02-11 2009-08-18 Microsoft Corporation Publishing digital content within a defined universe such as an organization in accordance with a digital rights management (DRM) system
US7577964B2 (en) 2003-02-28 2009-08-18 Hewlett-Packard Development Company, L.P. System and methods for defining a binding for web-services
US20040230965A1 (en) 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
DE10311898B4 (de) 2003-03-18 2005-04-21 Webasto Ag Heizgerät f∢r ein Fahrzeug
JP2004287994A (ja) 2003-03-24 2004-10-14 Fuji Xerox Co Ltd 電子図書館サーバ及び電子図書館サービスシステム
US20040207659A1 (en) * 2003-04-02 2004-10-21 International Business Machines Corporation Program creation by combining web services using graphic user interface controls
US20040205333A1 (en) 2003-04-14 2004-10-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for digital rights management
WO2004109443A2 (en) 2003-06-02 2004-12-16 Liquid Machines, Inc. Managing data objects in dynamic, distributed and collaborative contexts
EP2270622B1 (en) 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US7272228B2 (en) 2003-06-12 2007-09-18 International Business Machines Corporation System and method for securing code and ensuring proper execution using state-based encryption
JP2005012282A (ja) 2003-06-16 2005-01-13 Toshiba Corp 電子商品流通システム、電子商品受信端末、及び電子商品流通方法
US7089594B2 (en) 2003-07-21 2006-08-08 July Systems, Inc. Application rights management in a mobile environment
US8200775B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
SG145779A1 (en) * 2003-09-05 2008-09-29 Limelight Networks Inc Management of digital content licenses
US7389273B2 (en) * 2003-09-25 2008-06-17 Scott Andrew Irwin System and method for federated rights management
US7480382B2 (en) 2003-09-30 2009-01-20 Microsoft Corporation Image file container
US20050078822A1 (en) * 2003-10-08 2005-04-14 Eyal Shavit Secure access and copy protection management system
US7594275B2 (en) 2003-10-14 2009-09-22 Microsoft Corporation Digital rights management system
US20050102513A1 (en) 2003-11-10 2005-05-12 Nokia Corporation Enforcing authorized domains with domain membership vouchers
US20050108707A1 (en) 2003-11-14 2005-05-19 Taylor Thomas M. Systems and methods for creating and managing a virtual retail store on end-user client computers within a network
JP4624926B2 (ja) 2003-11-25 2011-02-02 パナソニック株式会社 認証システム
US7516331B2 (en) 2003-11-26 2009-04-07 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
US20050234735A1 (en) 2003-11-26 2005-10-20 Williams Jim C Digital rights management using proximity testing
US20050192902A1 (en) 2003-12-05 2005-09-01 Motion Picture Association Of America Digital rights management using multiple independent parameters
US20050177516A1 (en) 2004-02-06 2005-08-11 Eric Vandewater System and method of protecting digital content
WO2005081895A2 (en) 2004-02-23 2005-09-09 Hillcrest Laboratories, Inc. Methods and systems for a secure media computing environment
JP4350549B2 (ja) 2004-02-25 2009-10-21 富士通株式会社 デジタル著作権管理のための情報処理装置
CA2460467A1 (en) 2004-03-10 2005-09-10 Metamail Corporation System and method of trusted publishing
JP2005259015A (ja) 2004-03-15 2005-09-22 Ricoh Co Ltd 文書開示装置、文書開示システム、プログラム及び記憶媒体
JP4466148B2 (ja) 2004-03-25 2010-05-26 株式会社日立製作所 ネットワーク転送対応コンテンツ利用管理方法、及びプログラム、コンテンツ転送システム
US20050222227A1 (en) * 2004-04-01 2005-10-06 Pfizer Inc Oxazole-amine compounds for the treatment of neurodegenerative disorders
US7437771B2 (en) 2004-04-19 2008-10-14 Woodcock Washburn Llp Rendering protected digital content within a network of computing devices or the like
US20050262568A1 (en) 2004-05-18 2005-11-24 Hansen Mark D System and method for managing access to protected content by untrusted applications
US20050273629A1 (en) 2004-06-04 2005-12-08 Vitalsource Technologies System, method and computer program product for providing digital rights management of protected content
US7711647B2 (en) 2004-06-10 2010-05-04 Akamai Technologies, Inc. Digital rights management in a distributed network
US20050278256A1 (en) 2004-06-15 2005-12-15 Eric Vandewater System and method of promoting copy-managed digital content
GB0413848D0 (en) * 2004-06-21 2004-07-21 British Broadcasting Corp Accessing broadcast media
US8051292B2 (en) 2004-06-28 2011-11-01 Nds Limited System for proximity determination
US20060015580A1 (en) * 2004-07-01 2006-01-19 Home Box Office, A Delaware Corporation Multimedia content distribution
US7559759B2 (en) * 2004-07-20 2009-07-14 Irwin Research And Development, Inc. Trim press having an article ejector, article ejecting device with linear drive mechanism, and method
US7715565B2 (en) 2004-07-29 2010-05-11 Infoassure, Inc. Information-centric security
US20060036554A1 (en) 2004-08-12 2006-02-16 Microsoft Corporation Content and license delivery to shared devices
US7610011B2 (en) 2004-09-19 2009-10-27 Adam Albrett Providing alternative programming on a radio in response to user input
KR100677152B1 (ko) 2004-11-17 2007-02-02 삼성전자주식회사 사용자 바인딩을 이용한 홈 네트워크에서의 콘텐츠 전송방법
EP1672831A1 (fr) 2004-12-16 2006-06-21 Nagravision S.A. Méthode de transmission de données numériques dans un réseau local
JP4622514B2 (ja) 2004-12-28 2011-02-02 日本電気株式会社 文書匿名化装置、文書管理装置、文書匿名化方法及び文書匿名化プログラム
JP4510653B2 (ja) 2005-01-31 2010-07-28 キヤノン株式会社 レイアウト決定方法及び装置並びにプログラム
KR100694104B1 (ko) 2005-02-23 2007-03-12 삼성전자주식회사 라운드 트립 시간을 측정하는 방법 및 이를 이용한 인접성검사 방법
US8302178B2 (en) 2005-03-07 2012-10-30 Noam Camiel System and method for a dynamic policies enforced file system for a data storage device
KR100636232B1 (ko) 2005-04-29 2006-10-18 삼성전자주식회사 해시 체인을 이용하여 디바이스들간의 인접성을 검사하는방법 및 장치
EP1724699A1 (en) 2005-05-17 2006-11-22 Siemens Aktiengesellschaft Method and system for gradually degrading the quality of digital content in a DRM system
US20060294580A1 (en) 2005-06-28 2006-12-28 Yeh Frank Jr Administration of access to computer resources on a network
JP2007066302A (ja) 2005-08-04 2007-03-15 Ricoh Co Ltd 認証機能を備える電子文書
EP1924944A4 (en) 2005-09-12 2012-11-07 Sand Box Technologies Inc SYSTEM AND METHOD FOR CONTROLLING THE DISTRIBUTION OF ELECTRONIC INFORMATION
US8239682B2 (en) 2005-09-28 2012-08-07 Nl Systems, Llc Method and system for digital rights management of documents
WO2007043015A2 (en) 2005-10-13 2007-04-19 Koninklijke Philips Electronics N.V. Improved proximity detection method
KR100736080B1 (ko) * 2005-10-27 2007-07-06 삼성전자주식회사 다 계층으로 구성된 멀티미디어 스트림의 저작권을 계층별로 관리하는 방법 및 장치
KR100757845B1 (ko) 2006-02-13 2007-09-11 (주)잉카엔트웍스 클라이언트 기기로 암호화된 컨텐츠에 대응하는 라이센스를제공하는 방법 및 상기 방법을 채용한 drm 변환 시스템
US20070255659A1 (en) * 2006-05-01 2007-11-01 Wei Yen System and method for DRM translation
US7873988B1 (en) 2006-09-06 2011-01-18 Qurio Holdings, Inc. System and method for rights propagation and license management in conjunction with distribution of digital content in a social network
JP2009026013A (ja) 2007-07-18 2009-02-05 Yahoo Japan Corp コンテンツ登録・提供装置、コンテンツ登録・提供制御方法、および、コンテンツ登録・提供制御プログラム
US8230100B2 (en) * 2007-07-26 2012-07-24 Realnetworks, Inc. Variable fidelity media provision system and method
KR100982059B1 (ko) 2007-09-27 2010-09-13 주식회사 엘지유플러스 제휴 디알엠의 컨텐츠를 호환 디알엠의 컨텐츠로 변환하는시스템 및 그 방법과 그 기능의 컴퓨터 프로그램이 기록된기록매체
US7831571B2 (en) * 2007-10-25 2010-11-09 International Business Machines Corporation Anonymizing selected content in a document
CN100555299C (zh) 2007-12-28 2009-10-28 中国科学院计算技术研究所 一种数字版权保护方法和系统
JP5033658B2 (ja) 2008-01-28 2012-09-26 株式会社リコー 電子文書セキュリティシステム
US8095518B2 (en) 2008-06-04 2012-01-10 Microsoft Corporation Translating DRM system requirements

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093835A2 (ko) * 2011-01-03 2012-07-12 주식회사 케이티 모바일 p2p 서비스를 위한 지연-용인 콘텐츠 전송 장치 및 그 방법
WO2012093835A3 (ko) * 2011-01-03 2012-12-06 주식회사 케이티 모바일 p2p 서비스를 위한 지연-용인 콘텐츠 전송 장치 및 그 방법
WO2013048038A2 (ko) * 2011-09-26 2013-04-04 삼성에스디에스 주식회사 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
WO2013048038A3 (ko) * 2011-09-26 2013-07-04 삼성에스디에스 주식회사 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
CN103843298A (zh) * 2011-09-26 2014-06-04 三星Sds株式会社 媒体密钥管理及利用该媒体密钥的p2p消息收发系统和方法
CN103843298B (zh) * 2011-09-26 2016-07-20 三星Sds株式会社 媒体密钥管理及利用该媒体密钥的p2p消息收发系统和方法
KR20200036059A (ko) * 2014-04-23 2020-04-06 버티고 미디어 인코포레이티드 합성 리브로드캐스트 및 그룹 스트림을 소셜라이징하기 위한 스마트 라우팅 동기화 시스템 및 방법

Also Published As

Publication number Publication date
EP2270622A3 (en) 2012-08-08
CA2528428A1 (en) 2005-02-24
EP2270622A2 (en) 2011-01-05
US20100131412A1 (en) 2010-05-27
JP2008140399A (ja) 2008-06-19
US20080133731A1 (en) 2008-06-05
JP5059577B2 (ja) 2012-10-24
US20070283423A1 (en) 2007-12-06
AP2005003476A0 (en) 2005-12-31
JP5242915B2 (ja) 2013-07-24
JP5731679B2 (ja) 2015-06-10
CN1860761B (zh) 2015-09-23
AU2004264582B2 (en) 2010-05-13
KR20100058634A (ko) 2010-06-03
US20120159643A1 (en) 2012-06-21
CN103001923A (zh) 2013-03-27
KR100965437B1 (ko) 2010-06-24
BRPI0410999A (pt) 2006-07-04
IL223027A (en) 2015-01-29
CN1860761A (zh) 2006-11-08
EP2270622B1 (en) 2016-08-24
US20080140835A1 (en) 2008-06-12
EP1629363A2 (en) 2006-03-01
US9466054B1 (en) 2016-10-11
EP1629363B1 (en) 2014-04-30
EP2280524A2 (en) 2011-02-02
US9235833B2 (en) 2016-01-12
US20170163645A1 (en) 2017-06-08
US20120042389A1 (en) 2012-02-16
US9317843B2 (en) 2016-04-19
US8234387B2 (en) 2012-07-31
CA2528428C (en) 2013-01-22
KR101030941B1 (ko) 2011-04-28
JP2012053913A (ja) 2012-03-15
US20080285757A1 (en) 2008-11-20
WO2005017654A2 (en) 2005-02-24
US20120159642A1 (en) 2012-06-21
CA2776354A1 (en) 2005-02-24
AU2010212301B2 (en) 2012-03-15
EA200501896A1 (ru) 2006-06-30
US9424564B2 (en) 2016-08-23
WO2005017654A3 (en) 2006-03-16
JP2007526526A (ja) 2007-09-13
AU2004264582A1 (en) 2005-02-24
KR20060054192A (ko) 2006-05-22
SG155065A1 (en) 2009-09-30
CN103001923B (zh) 2016-03-30
US20100313038A1 (en) 2010-12-09
US20090094453A1 (en) 2009-04-09
EA008614B1 (ru) 2007-06-29
IL223027A0 (en) 2012-12-31
US20100017606A1 (en) 2010-01-21
KR101024237B1 (ko) 2011-03-29
IL172366A (en) 2013-01-31
US20100241849A1 (en) 2010-09-23
EA015549B1 (ru) 2011-08-30
EP1629363A4 (en) 2008-05-21
EA200700510A1 (ru) 2007-12-28
KR20080058459A (ko) 2008-06-25
JP2014146345A (ja) 2014-08-14
US20100070774A1 (en) 2010-03-18
EP2280524A3 (en) 2012-08-08
US20080301430A1 (en) 2008-12-04
US20080056500A1 (en) 2008-03-06
KR101030203B1 (ko) 2011-04-22
WO2005017654A9 (en) 2005-05-19
IL172366A0 (en) 2009-02-11
US20100250927A1 (en) 2010-09-30
US20100005513A1 (en) 2010-01-07
US9235834B2 (en) 2016-01-12
US20050027871A1 (en) 2005-02-03
US20080298591A1 (en) 2008-12-04
AU2010212301A1 (en) 2010-09-02
US20100067699A1 (en) 2010-03-18

Similar Documents

Publication Publication Date Title
KR101024237B1 (ko) P2p 서비스 편성을 위한 상호운용 시스템 및 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140310

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150306

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160308

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee