KR20060054192A - P2p 서비스 오케스트레이션을 위한 상호연동 시스템 및방법 - Google Patents

P2p 서비스 오케스트레이션을 위한 상호연동 시스템 및방법 Download PDF

Info

Publication number
KR20060054192A
KR20060054192A KR1020057023383A KR20057023383A KR20060054192A KR 20060054192 A KR20060054192 A KR 20060054192A KR 1020057023383 A KR1020057023383 A KR 1020057023383A KR 20057023383 A KR20057023383 A KR 20057023383A KR 20060054192 A KR20060054192 A KR 20060054192A
Authority
KR
South Korea
Prior art keywords
service
node
access
binding
content
Prior art date
Application number
KR1020057023383A
Other languages
English (en)
Other versions
KR101030941B1 (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 KR20060054192A publication Critical patent/KR20060054192A/ko
Application granted granted Critical
Publication of KR101030941B1 publication Critical patent/KR101030941B1/ko

Links

Images

Classifications

    • 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
    • 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/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
    • 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
    • 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

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

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

Description

P2P 서비스 오케스트레이션을 위한 상호연동 시스템 및 방법{INTEROPERABLE SYSTEMS AND METHODS FOR PEER-TO-PEER SERVICE ORCHESTRATION}
관련 특허출원
본 특허출원은 공동으로 양도되고, 2003년 6월 5일자로 William Bradley 와 David Maher 가 출원한 "P2P 서비스 오케스트레이션을 위한 시스템 및 방법 (Systems and Methods for Peer-to-Peer Service Orchestration)" 이라는 제목의 가특허출원 제 60/476,357 호, 및 2003년 9월 15일 Gilles Boccon-Gibod 이 출원한 "DRM (디지털 콘텐츠 권리 관리) 엔진의 시스템 및 방법 (Digital Rights Management Engine Systems and Methods)" 이라는 제목의 가특허출원 제 60/504,524 호를 우선권 주장의 기초로 하되, 양 특허출원은 그 전체로서 본 명세서에 통합된다.
저작권 허가
본 특허문서에 공개된 명세 (Disclosure) 의 일부는 저작권보호의 적용을 받는 자료가 포함된다. 저작권 소유자는 미국특허청 특허서류나 기록에 나타나는 대로의 특허문서나 특허명세의 팩시밀리 복제에 이의를 제기하지 않으나, 여타의 어떤 경우에도 모든 저작권 권리를 보유한다.
기술배경
인터넷 등의 네트워크는 디지털 콘텐츠와 미디어관련 서비스의 제공을 위한 지배적인 매체가 되고 있다. 표준 웹 서비스 프로토콜의 등장은 이 추세의 가속화를 약속함으로써, 기업들에게 복수의 소프트웨어 플랫폼에서 상호연동이 가능한 서비스를 제공하는 능력과 표준화된 메커니즘을 통해 서비스 업체와 소비자간 협력을 지원하는 능력을 갖추게 한다.
그러나 상호연동이 가능한 안전한 미디어관련 서비스의 세계에 대해서는 현저한 장벽이 존재하고 있다. 가령, 다수의 중복되는 사실상의 (de facto) 표준과 공식 표준들은 동일한 기본 상호연동성이나 상호연결 문제에 대한 대체적 기술 접근방식들 중 표준성은 다소 있으나 달리 호환성이 떨어지는 것들간의 서로 다른 구현 방식을 선택하도록 강요함으로써, 직접적인 상호연동성을 실제로 저해하고 있다. 이러한 비호환성은 서로 다른 세대의 기술들을 통합하려는 시도에서 초래되는 경우가 있고, 동일 시대에 존재하지만 서로 다른 지역에서 서로 다른 요구사항을 통해 활동하는 다양한 당사자들의 시장 선택에 의해 초래되는 경우도 있다. 따라서, 표준화에도 불구하고, 필요한 서비스를 제공하는 기기들을 발견 및 연결하여 상호작용을 하기가 종종 어렵게 된다. 그리고 서로 다른 신뢰 (trust) 및 보호 (protection) 모델들간에 비호환성 문제가 빈번하게 발생한다.
WSDL (Web Services Description Language: "위즈돌") 과 같은 새로이 등장하고 있는 웹 서비스 표준이 인터넷기반 시스템의 상기 문제 중 일부를 다루기 시작하고 있지만, 불완전한 접근방식에 머물고 있다. 이 접근방식은 개인통신망 (PAN) 및 근거리통신망 (LAN), 가정, 기업 및 부서의 게이트웨이, 그리고 광역통신망 (WAN) 에 걸쳐있는 다수의 네트워크 계층에서는 상기 문제들을 다루지 못하고 있다. 또한 이 접근방식은 다양한 서비스 인터페이스 바인딩 (예: CORBA, WS-I, Java RMI, DCOM, C 함수 호출, .Net[닷넷] 등) 을 통해 단순 및 복합 서비스의 다이내믹 (dynamic) 오케스트레이션에 기초한 상호연동성의 필요를 충분히 다루지 못함으로써, 수많은 레거시 애플리케이션을 통합할 수 있는 능력을 제한하고 있다. 널리 도입되어 이용되고 있는 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 오케스트레이션을 제공하기 위해 이용함으로써, 레거시 애플리케이션의 통합을 가능하게 할 수 있다.
미디어 세계에서 주요 이해관계자들 (예: 콘텐츠 발행자, 배포자, 판매서비스 사업자, 소비자기기 사업자, 소비자) 에 의해 요구되거나 선호되는 시스템 및 인터페이스의 종류는 종종 큰 차이를 보인다. 따라서 이러한 개체들에 의해 제공되는 기능은 참여 개체의 요구를 충족시키는 최적의 설정 (configuration) 으로의 급속한 진전이 가능한 통합 서비스로 통일시키는 것이 바람직하다.
예를 들면, 블루투스, UPnP, Rendezvous, JINI, UDDI, LDAP 등 다양한 서비스 디스커버리 프로토콜 및 레지스트리가 동일한 서비스 내에 공존할 수 있기 때문에 각 노드는 해당 호스트 기기에 가장 적합한 디스커버리 서비스를 이용할 수 있게 된다. 또 다른 서비스는 무선 SMS 통지 및 IP기반 통지를 지원하거나, 다양 한 미디어 포맷 (MP4, WMF 등) 을 지원할 수도 있다.
NEMO 의 실시예는 P2P 서비스 오케스트레이션을 통해 이러한 목적을 만족시킨다. 지금까지 P2P 프레임워크의 장점은 음악과 비디오 배포 등의 서비스에서 볼 수 있었지만, P2P 기술은 더욱 광범위한 이용이 가능하다.
웹 서비스에서의 활동 대부분이 상대적으로 정적인 (static) 네트워크 설정 및 클라이언트 서비스 상호작용을 갖는 기기간 (machine-to-machine) 상호작용에 치중하여 왔다. NEMO 는 개인이 자신의 개인통신망 (PAN) 의 일부분을 휴대한 채로 LAN 인근이나 또 다른 PAN 으로 이동하여 P2P 방식으로 다수의 추가 서비스에 접속하기를 원하는 한편 서비스 액세스 권한의 즉각적인 설정변경 (reconfigure) 을 원하는 경우, 이러한 상황을 다룰 수 있는 능력도 있다.
미디어 및 기타 다양한 기업 서비스에서도 기회가 존재하는데, 특히 두 개 이상 기업간의 상호작용에서 두드러진다. 기업의 조직은 흔히 계층구조로 되어 있어 그 정보시스템이 이러한 조직구조를 반영하는 반면, 다양한 조직으로부터의 사람들은 피어 인터페이스를 통해 더욱 효과적으로 상호작용을 수행하게 된다. 예를 들면 A 회사의 수신자/수신 서비스는 B 회사의 발송자와의 대화를 통해 문제를 해결하거나 유용한 정보를 더욱 직접적으로 얻을 수 있다. 계층구조나 불필요한 인터페이스를 옮겨 다니는 것은 일반적으로 도움이 되지 않는다. 송달 물류업체 (FedEx와 UPS 등) 는 이러한 점을 인식하여 자체 프로세스를 직접적으로 가시화 함으로써, 이벤트를 고객이 직접 모니터링할 수 있게 하고 있다. 여러 기업과 시정부 등의 지방자치단체들도 자신의 서비스를 엔터프라이즈 포털을 통해 구 성하여 초보적인 형태의 셀프서비스 (DIY) 를 가능하게 하고 있다.
그러나 기존의 P2P 프레임워크의 경우, 기업으로 하여금, 고객 및 협력업체에게 자연스러운 피어 레벨에서 상호작용을 할 수 있게 하여 이들이 기업의 서비스를 가장 알맞은 방식으로 오케스트레이션 할 수 있도록 자체의 다양한 서비스 인터페이스를 이들에게 노출시키는 것은 불가능하다. 이러한 문제는 가령, 해당 피어 인터페이스에 대한 일정한 형식의 신뢰관리를 초래하게 될 것이다. 본 발명의 바람직한 실시예는 이러한 서비스 인터페이스의 P2P 노출을 허용하기 위해서 뿐 아니라 그 촉진을 위해 이용할 수 있다.
디지털콘텐츠권리 관리 (Digital Rights Management: DRM) 등 특수한 애플리케이션의 경우, NEMO 의 실시예를 이용하여 폐쇄형의 동종 (homogeneous) DRM 시스템의 결점과 한계를 해결하기 위한 서비스지향 아키텍처 (SOA) 를 제공할 수 있다. 바람직한 실시예는 이기종의 소비자 기기, 미디어 포맷, 보안 메커니즘 등에 대해 상호연동이 가능한 안전한 미디어 관련 상거래 및 활동을 제공하기 위해 이용할 수 있다.
보호 콘텐츠를 다루기 위해 비교적 복잡하고 부담스러운 클라이언트측 엔진이 요구되는 다수의 레거시 DRM 시스템과 달리, 본 발명의 바람직한 실시예는 클라이언트측 DRM 엔진을 상대적으로 단순하게 하여, 해당 서비스 레벨에서 운영되는 더욱 풍부한 정책관리시스템 (PMS) 에 의해 설정된 통제 (governance) 정책을 시행할 수 있다. 또한 본 발명의 바람직한 실시예는 미디어 포맷과 암호 프로토콜의 선택에 있어서 유연성을 높일 수 있음은 물론, DRM 시스템간의 상호연동성을 촉 진할 수 있다.
[016] 단순성, 개방성, 유연성이라는 특징을 갖춘 클라이언트측 DRM 엔진은 강력한 DRM가능 (enabled) 애플리케이션을 구축하는 데에 이용할 수 있다. 일 실시예의 경우, DRM 엔진은 웹 서비스 환경에 통합되어 사실상 어떤 호스트 환경이나 소프트웨어 아키텍처에도 쉽게 통합될 수 있도록 설계되어 있다.
[017] 서비스 오케스트레이션은 상호연동성 장벽을 극복하는 데에 이용할 수 있다. 예를 들면, 콘텐츠에 대한 퀘리가 실행되어 있는 경우 그 요청을 이행하기 위해 다양한 서비스 (예: 디스커버리, 검색, 매칭, 업데이트, 콘텐츠권리 교환, 통지 등) 를 통합할 수 있다. 이 오케스트레이션 기능의 바람직한 실시예는 다이내믹인 다중계층 네트워크의 어느 지점에서든 사용자가 어떤 기기를 통해서나 모든 가정 및 인터넷기반 콘텐츠 캐시를 보는 것을 가능하게 한다. 이 기능을 재생목록의 스트림 공유를 촉진하는 데에까지 확대함으로써, 다양한 기기를 이용해 즉석 (impromptu) 브로드캐스트와 내로우캐스트를 발견 및 연결하기 쉽게 하고, 다른 한편으로는 콘텐츠 권리가 존중되도록 할 수 있다. NEMO 의 바람직한 실시예는 미디어 포맷, 콘텐츠권리 관리, 이행 프로토콜 등에 대해 단일한 표준에 의존하지 않는, 엔드 투 엔드 (end- to-end) 상호연동이 가능한 미디어 배포 시스템을 제공한다.
콘텐츠 개발자 (Originator), 배포자 (Distributor), 판매자 (Retailer), 서비스제공사업자, 기기 제조업체, 소비자 등이 포함된 가치사슬에는 종종 각 세그먼트별로 다수의 국소적 니즈 (needs) 가 존재한다. 이 현상은 콘텐츠 개발자가 다양한 문맥에서 서로 다른 다운스트림 가치사슬 구성요소별로 달리 적용되는 사용권을 명시할 수도 있는 콘텐츠권리 관리의 경우에 두드러지게 나타난다. 소비자 게이트웨이는 일반적으로 문제의 범위가 훨씬 좁으며, 최종사용자 기기의 경우 더욱 문제가 단순하여 콘텐츠를 재생하기만 하면 된다. 다이내믹하게 자가설정 (self-configuring) 이 이루어지는 배포 서비스에 대해 충분히 자동화된 시스템을 통해, 콘텐츠 개발자는 콘텐츠를 제작 및 포장하여 권리를 명시할 수 있는 한편, 소비자의 위치나 어떤 종류의 기기를 사용하고 있는지 관계없이 콘텐츠를 관심 있는 소비자에게 빠르게 제공함에 있어 다른 서비스제공사업자의 부가가치에 안심하고 의존할 수 있게 된다.
NEMO 의 바람직한 실시예는 다수의 서비스제공사업자에게 획일적인 (모노리식) 엔드 투 엔드 표준을 기다리거나 의존할 필요 없이 소비자와 사업자 모두가 혜택을 입는 새로운 서비스를 처음으로 도입할 수 있는 수단을 제공함으로써 이러한 목표를 달성한다. 정책관리는 저작권 침해자가 이러한 적법한 서비스를 악용할 수 있는 범위를 제한할 수 있다. NEMO 는 네트워크 효과를 통해, 저작권 침해자가 제공할 수 있는 것보다 나은 가치를 제공하는 매우 풍부한 적법한 서비스의 진화를 촉진할 수 있게 한다.
이하에서 논의되는 NEMO 실시예의 많은 것들에 공통되는 일부 "베스트 프랙티스" 기법에 포함되는 항목은 다음과 같다:
● 복합적인 기기지향 정책과 서비스지향 정책의 구분
● 더욱 단순한 서비스를 기초로 복잡한 서비스를 구성
● 서비스의 다이내믹한 설정 및 광고
● 이기종 환경에 있는 다양한 서비스의 다이내믹한 발견 및 호출
● 단순 기기로부터의 게이트웨이 서비스 활용
또한, NEMO 프레임워크와 함께 이용할 수 있는 혁신적 DRM 엔진 및 아키텍처가 제공된다. 이러한 DRM 시스템은 다음과 같은 목표의 일부 또는 전부를 달성하는 데에 이용할 수 있다:
단순성. 일 실시예의 경우, 프로그램 (예: 통제 (governance) 정책을 시행하는 프로그램) 제어를 실행하는데 최소한의 스택기반 버추얼 머신 (VM) 을 이용하는 DRM 엔진이 제공된다. 가령, VM 은 수 페이지의 코드로 구성될 수도 있다.
모듈형. 일 실시예에서는 DRM 엔진이 더 큰 DRM 가능 애플리케이션에 통합된 단일한 모듈의 기능을 하도록 설계되어 있다. 한때 획일적인 DRM 커널에 의해 수행되었던 기능 중 많은 기능 (암호화 서비스 등) 이 호스트 환경으로부터 요청될 수 있고, 호스트 환경은 이러한 서비스를 다른 코드 모듈에 제공할 수도 있다. 이를 통해 설계자는 표준적 또는 독점적 기술을 상대적으로 쉽게 통합시킬 수 있게 된다.
유연성. 그 모듈형 설계 덕분에 DRM 엔진의 바람직한 실시예는 내장형 (Embedded) 기기로부터 범용 PC에 이르는 다양한 소프트웨어 환경에서 이용할 수 있다.
개방성. DRM 엔진의 실시예는 사용자의 완벽한 제어를 받는 시스템에서 사실상 모든 프로그래밍 언어를 통해 사용자에 의해 코드 모듈과 API 가 구현될 수 있도록 하는 기준 소프트웨어 (Reference Software) 로 이용하는 데에 적합하다. 일 실시예의 경우, 시스템은 사용자에게 특정한 콘텐츠 포맷을 채택하도록 강요하거나 콘텐츠 인코딩을 제한하지 않고 있다.
시맨틱에 구애 받지 않음 (Semantically Agnostic). 일 실시예의 DRM 엔진은 승인요청을 그래프 구조에 관한 퀘리로 전환시키는 단순한 그래프기반 모델에 그 기초를 두고 있다. 그래프의 정점 (vertices) 은 시스템의 개체를 나타내고 방향성 간선 (directed edges) 은 이들 개체간의 관계를 나타낸다. 그러나, DRM 엔진은 이러한 정점과 간선이 특정 애플리케이션에서 무엇을 나타내는지 인식할 필요는 없다.
웹 서비스와의 완벽한 통합. DRM 클라이언트 엔진은 몇 가지 방식으로 웹 서비스를 사용할 수 있다. 예를 들면 그래프의 정점과 간선을 서비스를 통해 다이내믹하게 발견하는 것이 가능하다. 콘텐츠 및 콘텐츠 라이센스 역시 정교한 웹 서비스를 통해 발견하여 DRM 엔진으로 전송할 수 있다. 비록 DRM 엔진의 실시예 하나에 대해 환경을 설정하여 여러 곳에서 웹 서비스를 이용할 수 있지만, 그 아키텍처는 웹 서비스와 독립적인 것이기 때문에 단독실행형 (stand-alone) 의 클라이언트측 DRM 커널로 이용할 수 있다.
단순화된 키 관리. 일 실시예에서는 그래프 구조 (topology) 를 재사용하여, 암호화 타깃변경 (retargeting) 을 요구하는 일 없이 콘텐츠 보호 키의 도출을 단순화할 수 있다. 이러한 키 도출 방법은 선택적이기는 하지만 DRM 엔진의 강력한 기능으로서, 시스템이 추가적으로나 다른 대안으로서 다른 키 관리 시스템과 통합될 수 있게 한다.
통제, 암호화 및 콘텐츠의 구분. 일 실시예에서는 콘텐츠를 통제하는 제어장치가 그 통제 시행에 사용되는 암호화 (cryptographic) 정보로부터 논리적으로 구분되어 있다. 마찬가지로, 제어장치와 암호화 정보는 콘텐츠 및 콘텐츠 포맷으로부터 논리적으로 구분되어 있다. 상기 요소들은 각기 개별적으로나 통합 패키지로 묶어 전송할 수 있기 때문에, 콘텐츠 전송 시스템 설계에서 높은 수준의 유연성을 가능하게 한다.
NEMO 프레임워크 그리고 그 애플리케이션 및 구성요소의 실시예가 본 명세서에 기술되어 있다. 다수의 그 구성요소와 애플리케이션과 마찬가지로 프레임워크 자체도 혁신적이라는 점을 이해해야 한다. 또한 프로세스, 장치, 시스템, 기기, 방법, 컴퓨터 가독형 미디어, 또는 이들의 조합으로서 구현하는 것을 포함, 다양한 방식으로 본 발명을 구현할 수 있다는 점도 인식해야 한다. 이러한 기능 및 장점 등은 아래 세부 명세서, 그리고 발명의 독창적 부분의 원리를 예를 통해 설명하는 첨부 도면에서 상세히 제시된다.
도면의 간단한 설명
발명의 독창적 부분의 실시예는 첨부 도면과 함께 아래 상세 설명을 참조하면 쉽게 이해될 것이며, 도면에서 비슷한 참조번호는 비슷한 구성요소 (structural element) 를 가리킨다. 도면에 포함된 그림 현황은 다음과 같다.
도 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) 통신에 관계되는 워크플로 콜레이터 (Workflow Collator) 의 상호작용 패턴을 도시한다.
도 9c 는 워크플로 콜레이터 (Workflow Collator) 의 노드내 (intra-node) 기본적 상호작용 패턴을 도시한다.
도 9d 는 워크플로 콜레이터 (Workflow Collator) 의 비교적 복잡한 상호작용 패턴을 도시한다.
도 10 은 DRM 엔진의 시스템 통합을 도시한다.
도 11 은 DRM 엔진의 아키텍처에 대한 실시예를 도시한다.
도 12a 는 클라이언트측 시스템 노드 내의 DRM 엔진 및 관련 요소를 도시한다.
도 12b 는 서비스측 시스템 노드 내의 DRM 엔진 및 관련 요소를 도시한다.
도 13 은 콘텐츠 보호 및 통제 DRM 오브젝트의 실시예를 도시한다.
도 14 는 노드 및 링크 DRM 오브젝트의 실시예를 도시한다.
도 15 는 DRM 암호키 (cryptographic key) 요소의 실시예를 도시한다.
도 16 은 클라이언트와 서비스제공 시스템 노드간의 기본적 상호작용 패턴을 도시한다.
도 17a 는 통지 핸들러 서비스를 지원하는 노드를 디스커버리하는 통지 프로세싱 노드를 도시한다.
도 17b 는 통지 전송의 프로세스를 도시한다.
도 18a 는 요청 노드가 타깃으로 설정된 타깃 서비스제공 노드에 서비스 디스커버리 요청을 수행하는, 클라이언트 구동방식 (client-driven) 서비스 디스커버리 시나리오를 도시한다.
도 18b 는 요청 노드가 자신의 설명을 서비스제공 노드에 등록하려는, 피어 등록 서비스의 디스커버리 시나리오를 도시한다.
도 18c 는 이해관계가 있는 노드가 서비스 가용성의 변경사항 (예: 서비스제공 노드 내의 서비스 존재) 통지를 수신하는, 이벤트기반 서비스 디스커버리 시나리오를 도시한다.
도 19a 는 묵시적인 신뢰 채널을 가진 서비스 바인딩을 이용해 신뢰를 구축하는 프로세스를 도시한다.
도 19b 는 요청/응답 (request/response) 모델을 기반으로 하여 신뢰를 확립하는 프로세스를 도시한다.
도 19c 는 보안 증명서 (security credential) 의 명시적 교환을 기반으로 하여 신뢰를 확립하는 프로세스를 도시한다.
도 20 은 서비스에 대한 정책관리 (policy-managed) 액세스를 도시한다.
도 21 은 멤버쉽 및 키 액세스 링크가 있는 견본 DRM 노드 그래프를 도시한다.
도 22 는 DRM 버추얼 머신 (VM) 코드 모듈의 포맷에 대한 실시예를 도시한다.
도 23 은 시스템 기능 프로필의 계층구조를 도시한다.
도 24 는 DRM 뮤직 플레이어 애플리케이션의 시나리오를 도시한다.
상세한 설명
발명의 독창적 부분에 대한 상세 설명은 아래에 제시된다. 이러한 설명이 몇 가지 실시예와 함께 제시되고 있지만, 발명의 독창적 부분은 어느 하나의 실시예에 한정되지 않고 수많은 대안, 변형 및 등가물을 포괄하고 있음을 이해해야 한다. 예를 들면, 일부 실시예는 소비자지향 콘텐츠 및 애플리케이션의 맥락에서 설명되고 있지만, 그 기술 (art) 에 숙달한 사람들은 본 발명에서 공개된 (disclosed) 시스템 및 방법을 더욱 넓은 응용분야에 맞게 쉽게 변경할 수 있다는 점을 인식할 것이다. 가령, 이러한 실시예는 아무런 제한 없이 엔터프라이즈 콘텐츠와 애플리케이션의 맥락에 맞게 쉽게 변경하여 적용할 수 있다. 또한, 발명의 독창적 부분에 대한 철저한 이해를 도모하기 위해 아래 설명에서 다수의 구체적 내용이 제시되지만, 일부 실시예는 이러한 내용의 일부 또는 전부 없이 실행될 수도 있다. 게다가, 명확성을 기하기 위해, 해당 기술에서 알려진 일정한 기술적 자료는 발명의 독창적 부분을 불필요하게 모호하게 하는 것을 피하기 위해 자세하게 설명되지 않았다.
1. 개념
1.1. 웹 서비스
웹 서비스 아키텍처 (WSA) 는 서비스지향 아키텍처 (SOA) 의 구체적인 예가 된다. SOA 그 자체는 느슨히 연결된, 협동 소프트웨어 에이전트로 구성된 분산시스템의 일종이다. SOA 의 에이전트는 서비스를 제공하거나 서비스를 요청 (소비) 할 수 있으며, 양자를 동시에 수행할 수도 있다. 하나의 서비스는 서비스제공자의 역할을 하는 에이전트에 의해 관리되는, 정의가 명확한 자족적인 (self-contained) 연산의 집합으로 간주될 수 있다. 이 연산은 엔드포인트 (endpoint) 라 부르는 네트워크 주소지정이 가능한 (network-addressable) 위치에서 표준 프로토콜 및 데이터 포맷을 이용해 네트워크상에서 호출된다. 자족적이라는 말은 상기 서비스가 또 다른 서비스 또는 둘러싼 애플리케이션의 상태나 컨텍스트에 직접 의존하지 않음을 의미한다.
SOA 의 개념을 지원하는 확립된 기술의 예에는 CORBA, DCOM, J2EE 등이 포함된다. WSA 는 특정한 플랫폼, 프로그래밍 언어, 애플리케이션 프로토콜 스택, 데이터 포맷 규칙 등에 얽매이지 않기 때문에 매력적이다. WSA 는 서비스 설명과 메시지 교환을 위해 XML 에 기반한 표준 포맷을 이용하는데, XML 은 제공자와 소비자간의 느슨한 결합 (loose coupling) 과 상호연동을 촉진하고, 다수의 표준 인터넷 프로토콜 (특히 HTTP) 을 지원하기 때문에 잠재적인 글로벌 분산 시스템에 서 도입과 참여를 촉진한다.
새로이 등장하고 있는 추세는 SOA 를 "플러그 앤 플레이 (plug-and- play)" 서비스 버스의 맥락에서 보는 것이다. 이 서비스 버스 액세스방식은 설명, 메시징 및 전송의 표준을 활용함으로써 서비스의 오케스트레이션을 규정한다. 또한 그 기반구조는 디스커버리, 변환, 보안 등에 대한 표준을 통합할 수도 있다. WSA에 통합된 보편적 표준의 고유 특질을 통해, 이 액세스방식은 유연성과, 확장성 (extensible and scalable) 을 구비하게 되므로 오케스트레이션된 서비스 버스 모델을 구축하는 적절한 토대를 제공한다. 이 모델에서 근본적인 작업 (서비스) 단위를 웹 서비스라 부른다.
웹 서비스에 대한 정의는 다수 존재한다. 다음 정의는 '월드와이드웹 컨소시엄 (W3C) 웹 서비스 아키텍처' 의 작업초안에 나오는 것이다 (2003년 8월 8일자- www.w3. org/TR/ws-arch 참조).
웹 서비스는 상호연동성이 있는 기기간 상호 작용을 네트워크상에서 지원하기 위해 설계된 소프트웨어 시스템이다. 웹 서비스는 머신으로 처리가 가능한 ( machine-processable) 포맷 (특히 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 서비스 설명에 기술된 특정한 목적을 위한 연산의 집합에 액세스를 제공하여, 이 서비스 설명은 해당 서비스가 디스커버리될 수 있도록 다수의 수단에 의해 레지스트리에 발행된다. 레지스트리는 특정 도메인에서 공개 (public) 또는 개인 (private) 레지스트리가 될 수 있다.
서비스 레지스트리는 이전에 공개된 서비스 설명을 반환하여 서비스 검색 요청에 응답하는 소프트웨어이다. 서비스 요청자는 레지스트리로부터 얻은 WSDL에 명시된 바인딩 정보에 따라 서비스 제공자에 의해 제시되는 다양한 연산을 호출하는 소프트웨어이다.
이러한 서비스 레지스트리는 단지 개념적으로만 존재하거나, 특정 서비스에 대한 퀘리, 디스커버리 및 바인딩에 이용되는 서비스 설명의 데이터베이스를 제공하는 실제 소프트웨어로 사실상 존재할 수도 있다. 그러나 요청자가 실제로 적극적인 서비스 검색을 수행하는지 여부와 관계없이, 또는 서비스 설명의 제공이 정 적으로나 동적으로 이루어지는지 여부와 관계없이, 레지스트리는 웹 서비스 모델의 논리적으로 독특한 측면이다. 흥미로운 사실은 현실세계의 구현에서 서비스 레지스트리가 서비스 요청자 플랫폼이나 서비스 제공자 플랫폼의 일부가 될 수도 있고, 잘 알려진 주소나 다른 수단을 통해 제공된 주소에 의해 식별된 또 다른 위치에 있을 수도 있다는 것이다.
WSDL 서비스 설명은 종종 SOA를 뒷받침하는 중심 주제가 되는 느슨한 결합을 지원한다. 궁극적으로 서비스 요청자는 바라는 결과를 달성할 목적으로 소비하는 서비스의 인터페이스에 관한 시맨틱을 이해하게 되지만, 서비스 설명은 서비스 인터페이스를 특정 서비스 바인딩 정보로부터 격리시키는 한편 매우 다이내믹한 웹 서비스 모델을 지원한다.
서비스지향 아키텍처는 다수의 가능한 기술 계층에 더하여 구축할 수 있다. 현재 실행되는 웹 서비스는 일반적으로 다음 기술들의 제 측면을 통합하는 것이거나 그와 관련되는 것이다:
HTTP - 대부분의 웹 서비스 통신을 위한 표준 애플리케이션 프로토콜. 비록 웹 서비스를 다양한 네트워크 프로토콜 (예: SMTP, FTP 등) 에 대해 도입할 수 있지만, 사용되고 있는 프로토콜 중에서 가장 보편적이고 방화벽에 친숙한 전송 프로토콜은 HTTP 이다. 특히 인트라넷 내부의 애플리케이션 등 특정 애플리케이션의 경우, 요구사항에 따라 다른 네트워크 프로토콜이 합리적인 것이 될 수도 있지만, HTTP 가 오늘날 구축된 거의 모든 웹 서비스 플랫폼의 일부가 되고 있다.
XML - 구성 정보 (structured information) 의 콘텐츠 (그리고 그에 관한 정 보) 에 대한 형식화 및 액세스를 위한 표준. XML 은 웹 서비스 에이전트간에 정보를 전달하기 위한 텍스트기반의 표준이다. 중요한 사실은 XML 을 사용한다고 해서 웹 서비스의 메시지 페이로드에 이진 (binary) 데이터가 포함되어 있지 않다는 것을 의미하진 않고, 이진 데이터가 XML 규칙에 따라 형식화될 것임을 의미한다는 점이다. 대부분의 웹 서비스 아키텍처가 메시지와 데이터를 반드시 문자 스트림에 직렬화되어야 한다고 지시하지는 않는다. 메시지와 데이터는 이치에 닿는다면 얼마든지 이진 (바이너리) 스트림에도 직렬화될 수 있지만, XML 이 사용되고 있다면 이 스트림은 XML 문서를 나타내게 된다. 즉, 전송 메커니즘 수준 이상에서는 웹 서비스 메시징이 종종 XML 문서를 이용해 수행되게 된다.
많은 웹 서비스에 대해 특히 중요한 두 개의 XML 하위 기술은 XML -네임스페이스 (namespace) 와 XML 스키마 (schema) 이다. XML-네임스페이스는 네이밍 충돌을 해결하고 XML 문서에 포함된 요소에 구체적인 의미를 주장하기 위해 이용할 수 있다. XML-스키마는 XML 문서에 포함된 다양한 정보 항목을 정의하여 억제하기 위해 이용된다. 비록 이러한 목적을 다른 수단을 통해서도 성취하는 것이 가능하지만 (그리고 최적이지만), XML을 이용하는 것이 아마도 오늘날 이용되는 가장 흔한 기법이 된다. 웹 서비스 문서 자체에 대한 XML 문서 포맷 설명은 XML 스키마를 이용해 정의되며, 나아가 가장 현실적인 세계의 웹 서비스 연산과 메시지 자체는 XML 스키마를 통합하여 정의될 것이다.
SOAP - 다른 수신자로 전송하여 그 처리를 받기 위해 지침과 정보를 특별한 포맷의 패키지에 캡슐화 (encapsulate) 하기 위한 XML 기반의 표준. SOAP (Simple Object Access Protocol) 는 에이전트간 전송을 위해 웹 서비스 메시지를 캡슐화하기 위한 표준 메커니즘이다. 다소 틀린 명칭이기는 하지만 SOAP 의 레거시는 분산 오브젝트를 호출하는 수단으로서 존재하며 이 점에서 다른 대안들보다 "더욱 간소화된" 것이다. 그러나, 최근의 추세는 SOAP 를 그 약어의 본래 의미를 초월한 목적을 위한 XML기반의 와이어 (wire) 프로토콜로 간주한다.
SOAP 는 메시지 구성과 콘텐츠에 관한 정보 제공을 위해 비교적 가벼운 규칙을 정의하고 있다. 각각의 SOAP 문서에는 헤더와 본문으로 나누어지는 엔벨로프 (envelope) 가 포함된다. 비록 구성은 유사하지만 일반적으로 헤더는 본문에 포함된 콘텐츠 취급과 관련된 수신자를 위한 메타정보나 지침의 용도로 사용된다.
또한, SOAP 는 기능을 식별하는 수단과 그 기능의 의무를 이행하기 위해 필요한 처리를 식별하는 수단을 명시하기도 한다. 메시지 교환 패턴 (MEP) 은 노드간 메시지 교환 방법에 대한 패턴을 정의하는 기능이다. 일반화되어 있는 MEP 는 요청-응답 (request-response) 으로서, 이 MEP 는 요청 노드와 응답 노드간의 단일하고 완전한 메시지 트랜잭션을 확립한다 (http ://www.w3. org/TR/2003/REC-soap12-part2-20030624/#soapsupmep 참조).
WSDL - 웹 서비스 이용 방법을 설명하기 위한 XML 기반의 표준. WSDL 의 관점에서 보면, 서비스는 서비스 요청자와 서비스 제공자간 교환되는 메시지 집합과 관련이 있다. 메시지는 특정 프로토콜에 맵핑이 가능한 추상적 방식으로 설명된다. 일정한 기능을 호출하는 메시지 교환을 연산이라고 부른다. 특정 한 연산 집합은 인터페이스를 정의한다. 인터페이스는 네임드 바인딩 (named binding) 에 의해 구체적인 메시지 포맷 및 프로토콜에 연결된다. 바인딩 (인터페이스를 구체적 프로토콜에 맵핑) 은 프로토콜에 적절한 URI 와 관련을 맺어 엔드포인트에 이르게 된다. 한 개 이상의 관련된 엔드포인트의 컬렉션 (인터페이스를 특정 URI 에서 구체적 프로토콜에 맵핑) 은 하나의 서비스를 구성한다.
상기 정의들은 다음과 같은 구체적인 WSDL 요소와 맵핑한다.
Types 타입 (type) 정의를 위한 컨테이너 요소
Message 전송되는 데이터 타입의 추상적 정의
Operation 입력, 출력 및 오류 메시지의 조합을 기반으로 하는, 행위의 추상적 설명
portType 연산의 추상적 집합 - 인터페이스
binding 인터페이스 (portType) 의 구체적 프로토콜 및 데이터 포맷
port 바인딩과 실제 네트워크 주소의 조합 - 엔드포인트
service 관련 포트 (엔드포인트) 의 컬렉션
WSDL 은 공통된 바인딩 메커니즘을 정의하여 SOAP, HTTP GET/POST 및 MIME 에 대한 구체적인 바인딩 확장을 정의한다. 따라서 바인딩은 반드시 전송 프로토콜에 대한 직접적인 바인딩을 의미하지는 않고 특정 와이어 포맷에 대한 바인딩을 의미한다. 비록 실제 SOAP 메시지 교환이 일반적으로 포트 80을 통해 HTTP 상에서 (http:// URI 를 통해) 일어나지만, 웹 서비스에 대해 가장 공통된 바인딩 은 SOAP 이다. 그러나 인터페이스는 직접 HTTP 에 바인딩 될 수 있으며, 다른 경우라면 가령, SOAP 에 대한 바인딩은 SMTP (mailto:// URI 를 통해) 를 이용할 수 있다. 구현은 자신의 와이어 포맷을 정의하여 맞춤형 바인딩 확장을 이용할 수 있기까지 한다.
WSDL은 <import> 요소를 지원함으로써 유지보수성 (maintainability) 과 재사용성 (reusability) 을 촉진한다. WSDL 문서는 <import> 요소를 이용하여, 일정 조직에 대해 합리적인 방식으로 개별적인 부분으로 나누어질 수 있다. 인터페이스 정의와 구현 정의간에 일정 수준의 분리가 바람직한 일관된 웹 서비스 환경의 경우, 다음과 같이 세 개의 문서로 분리하는 것이 합리적이다.
스키마 (.xsd) 문서 - 루트 노드는 <schema> 이고 네임플레이스는 "http://www.w3.org/2001/XMLSchema" 임
재사용 가능 (reusable) 부분이라고 간주되는 것이 포함된 서비스 인터페이스 설명
<message>
<portType>
<binding>
특정한 서비스 엔드포인트가 포함된 서비스 구현 설명
<service>
WSDL 인터페이스는 자바 (또는 IDL이나 기타 프로그래밍 언어) 인터페이스와 정확하게 같지는 않다. 가령, 자바 인터페이스 선언 (declaration) 은 최소한 해당 인터페이스의 구현을 요구하는 클래스의 방법들의 하부집합과 반드시 대응해야 하는 방법들의 집합을 명시한다. 한 개 이상의 클래스가 한 개의 인터페이스를 구현할 수 있고 각 구현이 서로 다른 것이 될 수 있지만, 일반적으로 방법 서명 (방법 이름 그리고 입력이나 출력 타입) 은 반드시 동일해야 한다. 이는 해당 언어에 의해 의무화되며 컴파일 타임이나 런타임 또는 두 가지 모두에서 강제된다.
WSDL 인터페이스의 경우 자바 인터페이스와는 차이가 있어, 단독으로는 충분한 유용성이 없는 실제의 추상 클래스와 더욱 비슷하게 된다. 단일 웹 서비스의 다양한 WSDL 인터페이스나 portType 은 연산 이름의 집합이 동일해야 된다는 의미에서 논리적으로 관련되어 있지만 (마치 사실상 portType 이 다른 어딘가에서 정의된 구체적인 약정을 수행한 것처럼), 그러한 요소는 실제로 존재하지 않으며 portType 의 대칭성을 강요할 메커니즘도 없다. 각 portType 은 비록 하나의 portType 만으로는 바인딩을 생성하지는 않지만 일반적으로 자신이 지원하는 종류의 바인딩을 식별하기 위해 그 이름이 정해진다. 관련된 portType 을 위한 portType 연산은 동일하게 이름이 정해지지만, 입력, 출력 및 오류메시지 (존재하는 경우) 는 특정한 바인딩 지원에 필요하기도 한, 이름이 정해진 부분을 포함하는 특정 메시지에 맵핑된다. 이 사실은 메시지 그 자체는 완전히 추상적인 것은 아니라는 중요한 점을 제기한다. 웹 서비스는 요구되는 다양한 바인딩에 대해 유사하면서도 구별되는 메시지를 정의할 수도 있고 종종 실제로 그렇게 한다.
아래 도시하는 바와 같이, 새로운 웹 서비스 및 관련 표준의 활용을 통해, 네트워크상에서 상호연동이 가능한 미디어 관련 서비스이면서도 광범위한 하드웨어 및 소프트웨어 플랫폼과 운영환경에 걸쳐 다양한 프로토콜과 인터페이스를 이용하는 그러한 서비스를 촉진하는 시스템 아키텍처 개발이 가능하다.
1. 2. 역할
본 발명의 바람직한 실시예는 피어가 서비스를 노출시킴으로써 자생적으로 다양한 기능을 제공할 수 있게 되는 P2P 환경을 가능하게 하거나 촉진하거나 적극적으로 지원하는 것을 그 목표로 한다. 이 프레임워크의 일 실시예는 피어 (peer) 를 고정된 기능의 집합을 가진 것으로 간주하는 것을 억제하고 그 대신에 어느 시점에서든 피어가 한 개 이상의 역할에 대한 참가자가 되는 모델을 장려한다.
하나의 역할은 일정한 피어가 구체적인 행위 패턴과 협력하여 노출시키는 서비스 집합에 의해 정의될 수 있다. 어떤 시점에서든 NEMO 가능 (enabled) 노드는 다음과 같은 다양한 요인을 기반으로 하여 일정한 서비스 집합을 지원하기 위한 기능을 제공하는 그 노드의 실제 구현 풋프린트, 관리적 설정 (administrative configuration), 피어에 의해 노출될 수 있는 서비스를 선언하는 정보, 그리고 서비스 인터페이스상의 로드 및 런타임 정책 등 여러 역할을 수행할 수 있다.
명시적인 역할 집합은 다양한 종류의 서비스를 기반으로 정의될 수 있다. 시간이 지나면서 참가자의 공통 패턴이 결정되고 새로운 서비스가 도입됨에 따라, 더욱 공식적인 역할 분류 스킴 (scheme) 이 정의될 수 있다. 시간이 지남에 따라 공식화될 수 있는 예비적인 역할 집합에는 다음 항목들이 포함될 수 있다:
클라이언트 - 아무런 서비스도 노출되지 않고 피어가 다른 피어들의 서비스를 단지 이용하게 되는 비교적 단순한 역할이다.
인가자 (Authorizer) - 이 역할은 요청 주체 (principal) 가 일정한 사전조건 및 사후조건의 집합이 있는 지정된 리소스에 액세스 권한을 갖는지 여부를 결정하는 정책 결정점 (PDP) 으로 동작하는 피어를 나타낸다.
게이트웨이 - 일정한 상황에서 피어는 다음과 같은 이유에서 다른 서비스 제공자를 직접 발견하지 못하거나 그와 상호작용을 하지 못할 수도 있다: 전송 프로토콜 비호환성, 신뢰 컨텍스트 협상 불능, 또는 일정한 서비스와 관련된 필수 메시지의 생성 및 처리를 위한 처리 능력의 부족. 게이트웨이는 또 다른 피어에 대한 브리지 역할을 하여 해당 피어로 하여금 서비스 제공자와의 상호작용을 할 수 있도록 하는 피어를 말한다. 아이덴티티의 관점에서 그리고 연산에 대해 인가된 신뢰 컨텍스트를 확립하는 관점에서 보면, 요청 피어는 게이트웨이 피어에게 그 아이덴티티를 실제로 위임하여 해당 피어로 하여금 자신을 대신하여 협상하고 결정을 내릴 수 있도록 허용할 수도 있다. 또는, 게이트웨이 피어는 요청 및 응답을 포워딩하거나 라우팅하는 단순 릴레이포인트 (relay point) 의 역할을 할 수도 있다.
오케스트레이터 - 서비스 제공자 집합과의 상호작용이 서비스 (트랜잭션, 분산 상태관리 등) 의 사소하지 않은 조정 (nontrivial coordination) 을 수반하는 상황에서는, 피어가 참가하는 것이 능력을 벗어날 수도 있다. 오케스트레이터는 게이트웨이 역할의 한 전문 분야이다. 피어는 오케스트레이터에게 자신을 대신하여 하나 이상의 서비스를 제공하기 위해 간섭할 것을 요청할 수도 있다. 오케스트레이션 피어는 적절히 설정된 워크플로 콜레이터 (Workflow Collator) 등 추가적 NEMO 구성요소를 이용하여 오케스트레이션 요구사항을 충족시킬 수도 있다.
"적당한 이용 규칙 집합을 준수하는 모든 기기를 통해, 모든 포맷으로, 모든 원천으로부터, 모든 장소에서 미디어 요청을 충족시키는 즉시 만족을 제공" 한다는 목적을 고려할 때, 다음과 같은 비공식 모델은 NEMO 프레임워크의 실시예를 이용하여 상기 목적을 달성할 수 있는 방법을 도시한다. 모델의 최상위 수준에서 (사람이 상상할 수 있는 모든 미디어 서비스를 NEMO 가 가능하게 하는 방법의 모든 사항을 열거하지는 않고), NEMO 가 모델의 서로 다른 계층 (tier) 의 저수준 서비스를 더욱 풍부한 엔드 투 엔드 (end-to-end) 미디어 서비스로 조립될 수 있도록 하는 방법이 명확해질 것이다.
이 모델의 일 실시예에는 다음과 같은 4계층의 서비스 구성요소가 존재한다: 1) 콘텐츠 오서링, 조립 및 패키징 (Content Authoring, Assembly, and Packaging) 서비스, 2) 웹기반 콘텐츠 집적 및 배포 (Web-based Content Aggregation and Distribution) 서비스, 3) 홈 게이트웨이 (Home Gateway) 서비스, 그리고 4) 소비자 가전 (Consumer Electronics) 기기.
일반적으로 상기 4개의 계층은 각기 보안, 권리 관리, 서비스 발견, 서비스 오케스트레이션, 사용자 인터페이스 (UI), 복잡성 및 기타 서비스 속성에 대해 서로 다른 요구사항을 가진다. 처음 2 개의 계층은 "전통적인" 웹 서비스에 대해 볼 수 있는 모델과 매우 개략적인 조화를 이루는 한편, 다른 2 개의 계층은 논리적 개인 네트워크 모델 (personal logical network) 이라 부를 수 있는 모델 중에서 홈 게이트웨이의 일정한 서비스가 두 종류의 모델간의 중추부 (nexus) 에 존재하는 그러한 모델과 조화를 이룬다. 그러나 소비자 가전 (CE) 기기에 대한 서비스는 때때로 어느 계층에서나 보일 수 있다.
한가지 어려운 문제는 엔드 투 엔드 (end-to-end) 솔루션을 포괄할 만큼 충분히 일반적인 성격을 유지하면서도 구현의 효율성을 위해 프레임워크의 일부를 전문화하려는 데에 있다. 가령, UDDI (Universal Description, Discovery and Integration) 의 디렉터리와 디스커버리 접근방식은 비교적 정적 (static) 이고 중앙화된 웹 서비스에 대해 효과적으로 작동할 수도 있지만, 개인 네트워크의 더욱 다이내믹하고 일시적인 병합에 대해서는 UPnP 및 Rendezvous (랑데부) 에서 찾을 수 있는 모델들과 같은 디스커버리 모델이 더욱 적절한 것일 수도 있다. 따라서 일부 실시예에서는 프레임워크 내에 다수의 디스커버리 표준이 수용된다.
마찬가지로, 권리 관리가 홀세일 (wholesale), 수집자 (aggregator), 리테일 배포 하부계층 (sub-tier) 등을 통해 미디어 배포에 적용되는 경우, 명시하여 추적 관리할 필요가 있는 다수의 서로 다른 종류의 복잡한 권리와 의무가 있을 수 있으므로 매우 명시적이고 복잡한 권리 언어, 정교한 콘텐츠 통제 (governance) 및 클리어링 (clearing) 서비스, 그리고 글로벌 신뢰 모델의 필요성을 암시한다. 그러나 홈 게이트웨이 및 소비자 가전 (CE) 기기 계층에 대한 권리 관리와 콘텐츠 통제는 소비자의 관점에서 비교적 간단하게 보이는 공정한 사용권을 강조하는 서로 다른 신뢰 모델을 초래할 수도 있다. 논리적 개인 네트워크의 피어 기기는 해 당 네트워크의 비교적 단순한 신뢰 모델을 이용하면서 아마도 프락시 게이트웨이 서비스를 통해 글로벌 신뢰 모델을 이용해 광역통신망 (WAN) 상의 피어들과 상호작용을 할 수 있는 능력을 갖추어, 상호작용을 하기 원할 수도 있다. 소비자 종단 (consumer end) 에서의 경우, 일부 이동성이 있어 간헐적으로 여러 네트워크를 교차하는 기기에 대한 자동화된 콘텐츠 관리의 가용성 여부로 인해 복잡성이 드러난다. 따라서, 권리 관리에 대한 효과적인 접근방식은 엔드 투 엔드 배포를 가능하게 하면서도, 판매 트랜잭션과 함께, 또는 가입자 권리 (subscription right) 가 행사되는 경우의 아마도 또 다른 이벤트와 함께 오케스트레이션되는 트랜잭션에서 개별 소비자의 사용권에 대해, 배포 권리의 표현을 해석하여 번역하는 서비스 등 다양한 권리 관리 서비스를 지원하는 이질적인 (heterogeneous) 것이 될 수도 있다.
1. 3. 논리적 모델
일 실시예의 경우, 시스템 프레임워크는 P2P 방식으로 상호작용을 하는 논리적으로 연결된 노드의 집합으로 구성된다. 종종 P2P 컴퓨팅은 컴퓨터 및 기타 인텔리전트 기기들 사이의 자원 (하드디스크 드라이브와 프로세싱 사이클 등) 공유로 정의된다. http://www.intel.com/cure/peer.htm 참조. 이때 P2P 는 네트워크 노드에게 모든 종류의 서비스를 대칭적으로 소비 및 제공할 수 있도록 해주는 통신 모델로 간주될 수도 있다. P2P 메시징 및 워크플로 대조 (workflow collation) 는 더욱 원시적인 (primitive) 서비스의 이질적인 집합으로부터 풍부한 서비스가 다이내믹하게 생성될 수 있도록 한다. 이를 통해, 서로 다른 서비스 바인딩을 이용하기조차 하여, 공유되는 자원이 다수의 서로 다른 종류의 서비스인 경우 P2P 컴퓨팅의 가능성을 조사할 수 있게 된다.
서로 다른 실시예가 이해관계자 (예: 소비자, 콘텐츠 제공자, 기기 제조업체, 서비스 제공자) 로 하여금 서로를 발견하여 상호작용을 하고 가치를 교환하는 한편 풍부하고 다이내믹한 방식으로 협력할 수 있도록 하는 미디어 서비스 프레임워크를 제공할 수 있다. 이러한 서로 다른 종류의 서비스는 기본적인 것 (디스커버리, 통지, 검색, 파일 공유 등) 에서부터 더욱 복잡한 고수준 서비스 (로커 (locker), 라이센싱, 매칭, 인가, 페이먼트 트랜잭션 등), 그리고 이들 서비스의 조합에 이르기까지 다양하다.
서비스는 메시지 펌프와 워크플로 콜레이터 (workflow collator) 를 이용해 메시지 라우팅과 오케스트레이션을 각기 제공하는 P2P 통신 노드상에서 배포될 수 있다 (아래 상세 설명 참조).
노드는 서비스 호출을 요청하여 응답을 수신하는 방식으로 상호작용을 한다. 이러한 요청 및 응답 메시지의 포맷과 페이로드 (payload) 는, 확장 가능한 데이터 타입의 집합을 구현함으로써 서비스 및 그 관련 인터페이스 바인딩의 설명과 구성을 가능하게 하는, 표준 XML스키마 기반의 웹 서비스 설명 언어 (예: WSDL) 로 정의되는 것이 바람직하다. WSDL 의 오브젝트 타입의 많은 것들이 다형성 (polymorphic) 이 있으므로 새로운 기능을 지원하도록 확장이 가능하다. 시스템 프레임워크는 단일 서비스 제공자와의 직접적인 상호작용으로부터 다수의 서비스 제공자의 조율된 서비스 집합에 대한 복잡한 집적에 이르기까지 다양한 통신 패 턴의 구성을 지원한다. 일 실시예의 경우, 시스템 프레임워크는 기존의 서비스 조율 표준 (WSCI, BPEL 등) 을 이용하기 위한 기본 메커니즘을 지원하는 한편, 서비스 제공자에게 자신의 규칙을 사용할 수 있도록 허용하기도 한다.
서비스 호출과 관련된 메시지의 구문은 시스템 프레임워크 내에서 사용되는 핵심 데이터 타입이 그렇듯이, 비교적 유연하고 이식가능한 (portable) 방식으로 설명되는 것이 바람직하다. 일 실시예의 경우, 이 사항은 설명된 서비스와 관련된 시맨틱 설명을 참조하기 위해 비교적 단순한 방법을 제공할 수 있도록 WSDL 을 이용해 성취된다.
서비스 인터페이스는 한 개 이상의 서비스 바인딩을 가질 수 있다. 그러한 실시예의 경우, 노드는 또 다른 노드의 인터페이스 바인딩이 가령 WSDL 로 표현될 수 있고, 요청 노드가 그 바인딩과 관련된 규칙 및 프로토콜을 지원할 수 있는 한, 해당 노드의 인터페이스를 호출할 수도 있다. 예를 들어 노드가 웹 서비스 인터페이스를 지원하는 경우, 요청 노드는 SOAP, HTTP, WS-Security 등을 지원할 것이 요구될 수도 있다.
모든 서비스 인터페이스는 권리 관리의 측면을 직접 제공하는 표준화된 방식으로 콘트롤 (예: 권리에 대한 관리) 될 수 있다. 노드간의 상호작용은 통제된 (governed) 연산으로 간주될 수 있다.
거의 모든 종류의 기기 (물리적 또는 가상적) 는 잠재적으로 NEMO 가능 (enabled) 이기 때문에 NEMO 프레임워크의 핵심 측면을 구현할 수 있는 것으로 간주될 수 있다. 기기 종류에는 가령 소비자 가전 장비, 네트워크화된 (networked) 서비스, 소프트웨어 클라이언트 등이 포함된다. 바람직한 일 실시예의 경우, NEMO 가능 기기 (노드) 는 일반적으로 다음과 같은 논리적 모듈의 일부 또는 전부를 포함한다 (아래에서 상세히 설명):
원시 (native) 서비스 API - 기기가 구현하는 한 개 이상의 서비스 집합. NEMO 노드가 NEMO 프레임워크에서 서비스를 직간접적으로 노출해야 한다는 요구사항은 없다.
원시 서비스 구현 - 원시 서비스 API에 대해 상응하는 구현의 집합.
서비스 적응계층 (Service Adaptation Layer) - 개체의 원시 서비스의 노출된 하위집합에 대한 액세스가 가령 WSDL 에 설명된 한 개 이상의 발견가능 바인딩을 이용해 이루어지는 수단이 되는 논리적 계층.
프레임워크 지원 라이브러리 - 서비스 인터페이스, 메시지 프로세싱, 서비스 오케스트레이션 등의 호출에 대한 지원을 포함, NEMO 프레임워크를 다루기 위한 지원 기능을 제공하는 구성요소.
1. 4. 용어 정의
일 실시예의 경우, 기본적 WSDL 프로필이 상호작용 패턴과 기반구조 기능을 지원하기 위한 최소한의 데이터 타입 및 메시지의 "코어 (core)" 집합을 정의한다. 사용자는 임시적으로 직접, 또는 일부 형식의 표준화 프로세스를 통해, 이러한 코어에 더하여 구축된 여타 프로필을 정의함으로써 새로운 데이터 및 서비스 타입을 추가하고 기존의 것들을 확장할 수 있다. 일 실시예의 경우, 이러한 코어 프로필은 다음과 같은 중요한 기본 데이터 타입의 일부 또는 전부에 대한 정의 를 포함한다.
노드 - 시스템 프레임워크 참가자의 표현을 말한다. 하나의 노드는 서비스 소비자 또는 서비스 제공자의 역할을 포함, 여러 역할을 할 수도 있다. 노드는 소비자 가전 기기, 미디어 플레이어 등 소프트웨어 에이전트, 콘텐츠 검색 엔진 등 가상 서비스 제공자, DRM 라이센스 제공자, 또는 콘텐츠 로커를 포함, 다양한 형식으로 구현될 수도 있다.
기기 - 가상적 또는 물리적 기기의 표현을 말한다.
사용자 - 클라이언트 사용자의 표현을 말한다.
요청 - 타깃 노드 집합에 대한 서비스 요청을 말한다.
요청 입력 - 요청에 대한 입력을 말한다.
응답 (Response) - 요청과 관련된 응답을 말한다.
요청 (Request) 결과 - 어떤 요청과 관련된 응답 결과를 말한다.
서비스 - 제공자 노드에 의해 노출되거나 제공되는 일단의 잘 정의된 기능들의 표현을 말한다. 예를 들어, 이동전화 (예를 들면 음성인식서비스) 와 같은 기기 안에서 제공되는 낮은 수준의 기능일 수도 있고 월드와이드웹 (예를 들면 쇼핑 서비스) 을 통해 제공되는 다면적인 기능일 수도 있다. 서비스는 클라이언트 퍼스널라이제이션 (personalization) 와 라이센스 획득과 같은 DRM 관련 서비스를 포함하는 광범위한 애플리케이션을 포괄할 수 있다.
서비스 제공자 - 서비스를 제공하는 개체 (예를 들면, 노드나 기기). 잠재적인 서비스 제공자들로, 이동전화, PDA, 휴대용 미디어 플레이어 및 홈 게이트 웨이와 같은 전자 제품과 함께 통신망사업자 (network operator) (예를 들면, 유선전파중계국), 이동통신사업자, 웹기반 소매업체 및 콘텐츠 라이센스 제공업자 등이 포함된다.
서비스 인터페이스 - 하나 이상의 서비스와의 잘 정의된 상호작용 방식.
서비스 바인딩 - 서비스 인터페이스를 호출하기 위해 사용되는 협약 및 프로토콜을 포함해 하나의 서비스와 통신하기 위한 특정 방식을 말한다. WS-I 표준 XML 프로토콜, WSDL 정의에 기반한 RPC 또는 DLL 로부터 함수 호출 등의 잘 정의된 여러 가지 방식으로 표현된다.
서비스 액세스 포인트 (SAP) - 하나의 노드가 일단의 타깃 서비스 제공 노드로 서비스 호출 요청을 하고 응답을 받도록 하기 위해 필요한 기능을 말한다.
워크플로 콜레이터 (WFC) - 노드가 서비스 호출과 관련된 요청과 응답 컬렉션 (collection) 을 관리하고 처리할 수 있도록 공통된 인터페이스를 제공하는 일종의 서비스 조정 메커니즘. 이 인터페이스가 서비스와 관련된 메시지를 관리함으로써 서비스 조정을 위한 기본 구성요소를 제공한다.
디지털 콘텐츠 권리 관리 (DRM) 와 같은 특정 애플리케이션의 맥락에서, 전형적인 프로필은 시스템에서 오브젝트를 표현하고, 콘텐츠를 보호하고 사용 규칙을 콘텐츠와 연관시키고, 요청시 액세스 여부를 결정하는 아래와 같은 일단의 콘텐츠 보호 및 관리 오브젝트를 위한 다양한 DRM 관련 서비스 (아래에 기술) 를 포함할 것이다.
콘텐츠 레퍼런스 (Content Reference) - 하나의 콘텐츠 항목에 대한 레퍼런 스나 포인터의 표현이다. 그러한 레퍼런스는 보통 다른 표준화된 콘텐츠 포맷, 위치 등의 기술 방식을 활용할 것이다.
DRM 레퍼런스 - 디지털저작권 관리 포맷의 설명에 대한 레퍼런스나 포인터의 표현이다.
링크 - 개체 사이의 연결 (예를 들면, 노드).
콘텐츠 - 매체나 기타 내용을 나타낸다.
콘텐츠 키 - 콘텐츠 암호화를 위해 사용된 암호화 키를 말한다.
컨트롤 (control) - 콘텐츠와의 상호작용을 지배하는 이용 또는 기타 규칙을 말한다.
컨트롤러 - 컨트롤 및 콘텐츠 키 (ContentKey) 오브젝트들 사이의 결합을 나타낸다.
프로젝터 (projector) - 콘텐츠 및 콘텐츠 키 (ContentKey) 오브젝트 사이의 결합을 나타낸다.
일 실시예에서 코어 프로필은 다음의 기본적인 서비스의 일부 또는 전부에 대한 정의를 포함한다:
인가 ( Authorization) - 서비스 액세스 참여를 허가하기 위한 요청이나 응답.
통제 (Governance) - 소프트웨어를 다운로드하고 설치하는 능력처럼 일부 아이템 (예를 들면, 음악 파일, 문서 또는 서비스 오퍼레이션) 에 대한 압도적이거나 지배적 영향력을 행사하는 과정. 통제 (governance) 는 보통 신뢰 관리, 정책 관리 및 콘텐츠 보호와 같은 서비스 제공 기능과 상호작용한다.
메시지 라우팅 (Message Routing) - 서비스 제공 노드가 메시지를 전송하거나 메시지를 수집 및 조합하게 만드는 능력을 포함해 메시지 라우팅 기능을 제공하기 위한 요청이나 응답.
노드 등록 (Node Registration) - 노드 등록 작업을 실행해 노드가 중간 노드에서 발견되도록 하기 위한 요청이나 응답.
노드 발견 (퀘리) - 노드의 발견과 관련된 요청이나 응답.
통지 (Notification) - 타깃 통지 메시지를 특정 노트 집합으로 전송하기 위한 요청이나 응답.
보안 신임장 교환 (Security Credential Exchange) - 노드가, 키쌍이나 인증서와 같은 보안 관련 정보를 교환하도록 허용하는 것과 관련된 요청이나 응답.
서비스 발견 (퀘리) - 하나 이상의 노드에 의해 제공된 서비스의 발견과 관련된 요청이나 응답.
서비스 오케스트레이션 ( Service Orchestration) - 서비스를, 서비스 제공자가 지정한 규칙을 지키는 관리하기 쉬운 굵직한 서비스나 재사용이 가능한 구성요소 또는 완전한 애플리케이션으로 조합하고 조정.
신뢰 관리 (Trust Management) - 노드간 상호작용을 위해 인가 받고 신뢰 받는 컨텍스트를 생성하기 위한 공통된 협약 및 프로토콜을 제공한다. 일부 환경에서는 NEMO 신뢰 관리가, 웹 서비스 영역에서 WS-Security, WS-Policy 와 같은 기존의 보안 메커니즘을 활용 및/또는 확장할 수도 있다.
업그레이드 - 기능 업그레이드를 받는 것과 관련된 요청이나 응답을 말한다. 일 실시예에서 이 서비스는 순수하게 추상적이며 다른 프로필들이 실질적인 표현을 제공한다.
1. 5. 노드 사이의 상호작용으로 예시하여 설명
아래에서 좀 더 상세하게 논의되겠지만, 두 시스템 노드, 서비스 요청자와 서비스 제공자 사이의 기본적인 논리적 상호작용은 보통 다음과 같은 이벤트 시퀀스를 포함한다. 서비스를 요청하는 노드의 관점에서 보면:
서비스를 요청하는 노드가, 지정된 서비스 바인딩을 이용해 필요한 서비스를 제공할 수 있는 NEMO-가능 (enabled) 노드를 찾기 위해 서비스 발견 요청을 한다. 한 노드가 발견된 서비스에 관한 정보를 저장할 것을 선택할 것이다. 노드 사이의 서비스 발견을 위한 인터페이스/ 메커니즘은 NEMO 노드가 실행하기로 선택하는 또 다른 서비스에 불과할 수 있다.
일단 후보 서비스를 제공하는 노드가 발견되면 요청하는 노드가 지정된 서비스 바인딩을 기초로 하나 이상의 서비스 제공 노드로 요청을 보내기로 선택할 것이다.
일 실시예에서, 서로 안전하게 통신하기를 원하는 두 노드가 WSDL 메시지 교환을 목적으로 신뢰 관계를 확립할 것이다. 예를 들어, 두 노드가 아이덴티티를 결정하고, 인가를 확인하고, 안전한 채널을 확립할 때 사용할 수 있는 일단의 호환가능한 신임장 (예를 들면, X, 500 인증서, 기기 키 등) 을 교섭할 것이다. 일부 경우, 이러한 신임장의 교섭이 서비스 인터페이스 바인딩의 묵시적 속성일 수 있다 (예를 들어, WS-I XML 프로토콜이 사용될 경우 WS-Security 나 잘 알려진 두 노드 사이의 SSL 요청). 또 다른 경우, 신임장의 교섭은 명백하게 별도의 단계일 수 있다. 일 실시예에서, 다른 노드와의 상호작용을 위해 어떤 신임장이 충분할지 그리고 특정 노드를 믿을 수 있을지 결정하는 것은 노드에게 달려 있다.
요청하는 노드는 요청된 서비스에 부합하는 적절한 WSDL 요청 메시지(들) 를 생성한다.
일단 메시지가 생성되면, 타깃 서비스 제공 노드(들) 로 보내진다. 요청의 통신 양식은, 예를 들어 동기 또는 비동기 RPC 식이거나 서비스 바인딩에 기초한 서비스 지향식 (service-oriented) 일 수도 있다. 서비스 요청을 보내고 응답을 받는 일은 기기에 의해 직접 또는 NEMO 서비스 프락시를 통해 이루어진다. 서비스 프락시 (아래에서 설명) 는 메시지를 다른 참가자 (participant) 에게 보내기 위한 추상화와 인터페이스를 제공하고, 호환가능 메시지 포맷, 전송 메커니즘, 메시지 라우팅 문제와 같은 특정 서비스 바인딩 문제를 숨길 수 있다.
요청을 보낸 후, 요청하는 노드는 보통 하나 이상의 응답을 받게 될 것이다. 구체적인 서비스 인터페이스 바인딩과 요청 노드의 설정에 따라, 응답(들)은, 가령 RPC식 응답이나 통지 메시지를 포함한 다양한 방식으로 되돌아올 것이다. 타깃 노드(들) 로 가는 도중에 응답은, 라우팅, 신뢰 교섭, 대조 (collation) 및 상관관계 기능을 포함한 여러가지 관련 서비스를 제공하는 다른 중간 노드를 통과할 것이다.
요청 노드는 응답(들) 을 검증해 서비스 제공 노드와 교섭한 신뢰 시맨틱 (trust semantics) 을 지키는지 확인한다.
그 후에 메시지 페이로드 (payload) 와 콘텐츠를 기초로 적절한 처리가 적용된다.
서비스 제공 노드의 관점에서 보면 이벤트 시퀀스는 보통 다음과 같다:
요청 받은 서비스가 지원 가능한지 결정한다. 일 실시예에서, NEMO 프레임워크는 서비스 진입점으로서 서비스 인터페이스가 어떻게 맵핑 (mapping) 해야 하는지 그 양식이나 세분성을 요구하지 않는다. 간단한 사례를 예로 들면, 서비스 인터페이스가 특정 서비스와 명확하게 맵핑되어, 서비스를 바인딩해서 호출하는 행위가 서비스를 지원한다. 그러나 일부 실시예에서는 단일 서비스 인터페이스가 여러 종류의 요청을 처리한다; 그리고 특정 서비스 유형은, 노드가 구체적으로 요구되는 기능을 지원하는지 결정하기 위해 조사해 볼 필요가 있는 추가적인 속성을 포함할 수 있다.
일부 경우, 서비스 제공자가 요청 노드를 신뢰할 수 있는지 결정하고 일단의 호환가능한 신임장을 교섭해야 할 필요가 있을 것이다. 일 실시예에서, 서비스 제공자의 신뢰 결정에 관계없이 서비스 인터페이스와 관련된 정책이 그대로 적용될 것이다.
서비스 제공자가 인가 요청(들) 을 결정하고 인터페이스 액세스 허가를 책임지는 노드(들) 요청을 보내 요청 노드가 액세스 권한을 가지고 있는지 결정한다. 많은 상황에서 인가 노드와 서비스 제공 노드가 동일한 개체일 것이며 인가 요청을 보내고 처리하는 것은 C 함수 진입점과 같은 가벼운 서비스 인터페이스 바인딩을 통해 호출된 로컬에서의 작업일 것이다.
요청 노드가 인가될 경우, 인가 응답을 받으면 서비스 제공자가 요청을 실행할 것이다. 인가되지 않은 경우, 적절한 응답 메시지가 생성될 것이다.
응답 메시지는 서비스 인터페이스 바인딩과 요청 노드의 설정을 기반으로 되돌아온다. 요청 노드까지 오는 중에 메시지는 다른 중간 노드들을 통과하는데 이 중간 노드들은 필수적인 또는 '부가가치' 서비스를 제공할 것이다. 예를 들어, 어떤 중간 노드는 경로 설정, 신뢰 교섭 또는 통지 처리 노드로 전송을 제공해 메시지를 요청 노드가 허용가능한 방식으로 전송할 수 있다. "부가가치" 서비스의 예로 쿠폰 서비스를 들 수 있는데 요청 노드의 관심을 알고 있을 경우 메시지에 쿠폰을 첨부한다.
2. 시스템 구조
DRM 애플리케이션을 구현하고 있는, 도 1 에 도시된 NEMO 시스템 프레임워크의 샘플 실시예를 고려해보자.
전술한 바와 같이, NEMO 노드는 서비스 호출 요청을 하고 응답을 받음으로써 상호작용한다. NEMO 프레임워크는, 단일 서비스 제공자를 이용한 단순한 점대점 상호작용에서부터 여러 서비스 제공자가 제공한 조율된 일단의 서비스 집합체까지 다양하고 풍부한 통신 패턴의 구성을 지원한다.
도 1의 맥락에서, NEMO 노드가 서로 상호작용해 집합적으로 하나의 음악 라이센싱 시스템을 구현하는 다양한 서비스를 제공한다. 컴퓨터 음악 로커 (110) 에 저장된 음악은 웹 음악 판매자 (120) 에 의해 추출되어 엔터테인먼트 홈 게이트 웨이 (130) 를 통해 가정에 있는 최종 사용자에게 제공된다. 소비자용 음악 로커 (110) 의 음악은 그러한 음악이 웹 음악 판매자 (120) 에 그리고 이후에 추가적인 이용과 배포를 위해 다른 곳에 제공되는 조건을 지배하는 규칙들을 포함하고 있다. 엔터테인먼트 홈 게이트웨이 (130) 는 그러한 음악 (은 물론 영상 및 기타 콘텐츠까지) 이, 가령 사용자 PC나 사용자의 휴대용 재생 기기 (예를 들면 휴대용 음악 플레이어 (150)) 에서 재생될 수 있도록 하는 수단이다. 사용자는, 가령 휴대용 음악 플레이어 (150) 를 가지고 이동할 수도 있고 무선 인터넷 연결 (예를 들면, 디지털 콘텐츠 권리 라이센스 서비스 (160) 로) 을 통해 추가로 노래를 구입하거나 기존의 노래를 다시 재생하거나 심지어 휴대용 음악 플레이어 (150) 에 소프트웨어 업그레이드 서비스 (170) 를 통해 새로운 기능을 추가하기 위한 라이센스를 득할 수 있다.
NEMO 노드는 서로간에 그리고 다른 기기와 매우 다양한 방식으로 상호작용할 수 있다. 도2a 에 도시된 것과 같은 NEMO 호스트는 최소한 하나의 NEMO 노드에서 호스팅하는 일종의 기계 또는 기기다. 호스트는 개인통신망 (210) 내에 또는 인터넷을 통해 액세스 가능한 원격지 (220) 에 상주할 것이다. 호스트는, 가령 서버 (230) 일 수도, 데스크탑 PC (240), 노트북 (250) 또는 개인휴대정보단말 (260) 일 수도 있다.
NEMO 노드는 다른 노드로 서비스를 제공하고 (타사 웹 서비스를 제공하는 호스트 (230) 와 같이) NEMO가 관리하는 프레임워크 내에서 다른 노드의 서비스를 호출할 수 있는 소프트웨어 에이전트이다. 일부 노드 (270) 는 블루투스와 같은 전용 통신 채널을 통해 다른 호스트에 구속된다. 이러한 호스트 (240과 250) 는 네트워크 연결 능력과 가상 노드를 다른 참여 NENO 노드에 줄 수 있는 충분한 처리 능력이 있다.
도 2b 에 도시되어 있듯이, NEMO 노드는 LAN이나 개인통신망 (PAN)(210) 내에서 하나의 완전한 피어 (peer) 일 수 있다. 노드들은 서비스를 드러내고 호출하는 대칭 기능을 공유한다; 그러나 보통은 각 노드가 동일한 서비스를 제공하지는 않는다. 노드가 자신이 실행하는 서비스를 광고하거나 수행하는 서비스에 관해 구체적으로 퀘리를 받을 수도 있다.
도 2c 에서 보듯이, 인터넷 연결이 가능하다면 로컬 NEMO 노드들 (예를 들면 개인통신망 (210) 내의) 이 원격지 노드 (220) 의 서비스에 액세스할 수도 있다. 로컬 네트워크 설정 (configuration) 과 정책에 따라 로컬 및 원격지 노드들 (예를 들면 인터넷 가능 (enabled) NEMO 호스트 (280)) 이 NEMO 피어처럼 상호연동될 수도 있다.
도 2d 에 도시되어 있듯이, 모든 NEMO 노드들이, 로컬이든 원격지든 다른 호스트와 통신할 수 있는 호스트에 있는 것은 아니다. NEMO 호스트 (280) 는 게이트웨이 서비스를 제공할 수 있고, 이 서비스를 통해 한 노드가 다른 노드, 가령 테서드 (tethered) 노드 (285) 나 개인통신망 (210) 노드의 서비스를 호출할 수 있다.
도 2e 에 도시되어 있듯이, 테서드 (tethered) 기기의 노드 (295) 는 위에서 언급한 것처럼 게이트웨이를 통해 다른 노드의 서비스에 액세스할 수 있다. 그 리고 다른 노드들도 다른 호스트 (290) 에서의 프락시 서비스를 통해 이 노드에 액세스할 수 있다. 프락시 서비스는 NEMO 호스트에서 돌아가는 가상 노드를 생성한다. 이러한 프락시 노드들이 전체 NEMO 피어가 될 수 있다.
도 2f 에 도시되어 있듯이, NEMO 호스트는 NEMO 모드 어댑터를 통해 테서드 기기를 위한 지원을 제공할 수 있다. 호스트/NEMO 기기 어댑터 (297) 과 테서드 노드 (298) 사이에 적절한 프로토콜을 이용하는 전용 통신 채널 (296) 이 사용된다. 테서드 노드 (298) 는 다른 NEMO 피어 노드를 볼 수도 없고 다른 노드에게 보이지도 않는다.
다음으로, 특정 실시예에서 NEMO 가능 (enabled) 기기에 의해 제공될 수 있거나 NEMO 맥락 밖에서 사용 가능한 디지털저작권관리 (DRM) 기능의 예를 고려해 보자. 전술한 바와 같이, NEMO 시스템 프레임워크의 바람직한 실시예의 가장 큰 목적은 상업용 네트워크 계층과 소비자 지향 네트워크 계층 모두에 걸쳐 미디어 관련 서비스 사이의 안전하고 상호연동되는 연결 (interconnections) 의 개발을 지원하는 것이다. 서비스 연결에 덧붙여, 미디어 관련 서비스들 사이의 상호연동성은 이러한 서비스를 통해 이용가능한 콘텐츠에 적용되는 이용 권리의 오케스트레이션 된 관리를 필요로 하는 경우가 많다. NEMO 서비스와 여기서 기술하는 전형적인 DRM 엔진을 함께 이용해서 기기가 NEMO 프레임워크를 기초로 소비자에게, 심지어 이기종의 DRM 및 미디어 포맷 기반구조에서도 심리스 (seamless) 렌더링과 이용 경험을 제공하도록 허용하는 상호연동이 가능하다.
DRM 애플리케이션의 맥락에서, 도3 에 도시되어 있듯이 NEMO 가능 DRM 기기 네트워크는 콘텐츠 제공자/서버 (310) 와 보호 콘텐츠 뿐만 아니라 휴대용 기기 (340) 로 전송하기 위한 패키지 콘텐츠도 재생할 수 있는 소비자 PC 패키저/플레이어 (320) 를 포함한다.
각 DRM 기기 내에서, DRM 엔진이 특정 DRM 기능 (예를 들면, 라이센스 조건 이행, 호스트 애플리케이션으로의 키 전송 등) 을 실행하고 암호화, 해독 및 파일 관리와 같이 호스트에 의해 가장 효과적으로 제공될 수 있는 서비스를 위해 호스트 애플리케이션에 의존한다.
이하 상세하게 설명할 바와 같이, 일 실시예에서 DRM 엔진은 보호 콘텐츠에 대한 특정 작용이 허용가능한지 결정하기 위해 고안된 버추얼 머신 (VM) 을 포함한다. 이 컨트롤 VM은 최소한의 명령어 집합을 가진 단일 스택기반 머신으로 구현될 수 있다. 일 실시예에서, 논리적 계산 및 산술적 계산을 실행할 수 있을 뿐만 아니라 호스트 환경에서 상태 정보를 퀘리해 시스템 시간, 카운터 상태 등과 같은 파라미터들을 점검할 수도 있다.
일 실시예에서, DRM 엔진은 그래프기반 알고리즘을 활용해서 DRM 가치 사슬 (value chain) 의 개체들 사이의 관계를 확인한다. 도 4 는 그러한 그래프의 개념적 실시예를 도시하고 있다. 그래프는 링크로 연결된 노드나 버텍스 (vertex) 의 집합으로 이루어진다. 시스템의 각 개체는 버텍스 오브젝트로 표현될 수 있다. 링크 오브젝트로 참조되어야 하거나 암호학적으로 표적화된 정보의 수신자인 개체만 상응하는 버텍스 오브젝트를 가질 필요가 있다. 일 실시예에서 버텍스는 보통 하나의 사용자, 기기 또는 그룹을 나타낸다. 버텍스 오 브젝트는 그 버텍스와 관련된 개체의 특성 (property) 을 나타내는 관련 속성 (attribute) 을 가진다.
예를 들어, 도 4 는 두 명의 사용자 (Xan과 Knox) 와 두개의 기기 (맥킨토시와 휴대용 기기) 그리고 그룹을 나타내는 여러 개체 (Carey 제품군의 구성원들, 공용 라이브러리의 구성원들, 특정 음악 서비스 가입자들, RIAA-인가 기기 및 특정 회사에서 제조된 기기들) 를 보여주고 있다. 각각은 관련된 버텍스 오브젝트를 가지고 있다.
링크의 시맨틱은 애플리케이션별 방식에서 차이가 난다. 예를 들어, 맥 버텍스에서 Knox 버텍스로 향하는 에지 (edge) 는 Knox가 맥킨토시의 소유자임을 의미한다. Knox에서 공용 라이브러리로 이어지는 에지는 Knox가 공용 라이브러리의 한 구성원임을 가리킨다. 일 실시예에서 DRM 엔진은 이러한 시맨틱을 강요하거나 해석하지 않는다-단순히 그래프 내에서 경로가 존재하는지 여부만을 확인한다. 이러한 버텍스 그래프를 "인가 (authorization)" 그래프로 간주할 수도 있는데, 두 버텍스 사이에 경로나 관계 (직접적이든 간접적이든) 가 존재한다 것은 한 버텍스가 다른 버텍스로 액세스하기 위한 인가로 해석할 수도 있기 때문이다.
예를 들어, Knox는 Carey 제품군과 연결되어 있고 Carey 제품군은 음악 서비스와 연결되어 있기 때문에, Knox와 음악 서비스 사이에 경로가 존재한다. 음악 서비스 버텍스는 다른 버텍스에서도 도달할 수 있는 것으로 여겨지는데 그 버텍스와 음악 서비스 사이에 경로가 있어야 한다. 이것은 음악 서비스가, 접근을 요청하는 애플리케이션 (예를 들면, DRM 클라이언트 호스트 애플리케이션) 이 실행 되고 있는 휴대용 기기로부터 음악 서비스에 도달할 수 있는 조건에 기초해 보호 콘텐츠 접근을 허용하게 하는 컨트롤을 작성할 수 있게 한다.
예를 들면, 콘텐츠 소유자가 컨트롤 VM 에 의해 해석되는 컨트롤 프로그램을 생성할 수 있는데 이 컨트롤은 기기가 공용 라이브러리의 한 구성원의 소유이고 RIAA 가 인가된 경우에 특정 음악이 재생되도록 허용한다. 기기에서 실행되는 컨트롤 VM 이 컨트롤 프로그램을 실행했을 때, DRM 엔진이 휴대용 기기와 공용 라이브러리 사이에 그리고 휴대용 기기와 RIAA 인가 사이에 링크가 존재하는지 결정한다. 그래프의 에지와 버텍스들은 정적으로 기기에 설계해 넣거나 동적으로 호스트 애플리케이션과 통신하는 서비스를 통해 발견될 수도 있다.
버텍스와 링크에 시맨틱을 강요하지 않음으로써, DRM 엔진은 상당한 유연성을 허용할 수 있다. 시스템은, 전통적인 위임기반 (delegation-based) 정책 시스템에서부터 인가 받은 도메인과 개인통신망까지 많은 사용 모델에 적응할 수 있다.
일 실시예에서 DRM 클라이언트는 콘텐츠 보호키 도출을 위해 인가 그래프를 다시 사용할 수도 있다. 시스템 설계자는 링크의 존재가 특정 암호화 정보의 공유를 암시하도록 선택할 수 있다. 그러한 경우, 명시적으로 암호의 타깃을 소비 기기로 바꾸지 않고서도 허가 그래프를 이용해 콘텐츠 키를 도출 (derive) 할 수 있다.
3. 노드 구조
3. 1. 개요
가전 제품, 네트워크 서비스 또는 소프트웨어 클라이언트를 비롯한 어떤 종류의 기기 (물리적 또는 가상적) 도 잠재적으로 NEMO 가 기기가 될 수 있다. 즉 기기의 기능을 NEMO 시스템 참여를 가능하게 하는 방식으로 확장시킬 수 있다. 일 실시예에서, NEMO 가능 기기 (노드) 는 개념적으로 도 5a 에 도시된 것처럼 특정 표준 모듈로 이루어져 있다.
원시 서비스 API (510) 는 기기가 실행하는 하나 이상의 서비스의 논리적 집합을 나타낸다. NEMO 노드가 어떤 서비스를 직접 또는 간접적으로 노출시켜야 한다는 요건은 없다. 원시 서비스 구현물 (520) 은 원시 서비스 API 를 위한, 상응하는 구현 (implementation) 의 집합을 나타낸다.
서비스 액세스 포인트 (530) 는 노출된 서비스 인터페이스 호출을 지원한다. 이것은 NEMO 노드가 서비스를 제공하는 NEMO 노드 집합으로 서비스 호출 요청을 하고 응답을 받을 수 있도록 하기 위해 필요한 기능이다. NEMO 가능 노드는 다양한 발견, 이름 해석 및 전송 프로토콜을 이용하는데 이를 위해서 유연성 있고 확장성 있는 통신 API 가 필요하다. 서비스액세스 포인트는 특정 실행 환경과 애플리케이션 프레임워크 양식에 따라 다양한 방식으로 실현할 수 있다. 하나의 일반적 인터페이스 모델은 XML 메시지를 받고 XML 메시지를 반송할 수 있는 인터페이스가 될 것이다. 더 많은 원시 인터페이스를 가진 다른 모델들 역시 지원할 수 있다.
NEMO 서비스 적응계층 (540) 은 하나의 선택적 계층으로 이 계층을 통해 하나 이상의 발견가능한 바인딩을 이용해서 한 개체의 원시 서비스 중 노출된 부분집 합에 접근한다. 이 계층은 원시 서비스 API 이상의 추상화 수준을 제공함으로써 서비스 제공자가 더 쉽게 다양한 종류의 서비스 인터페이스 바인딩을 지원할 수 있도록 한다. 서비스 적응계층이 없는 상황에서도, 필요한 통신 프로토콜을 지원한다면 서비스 액세스 포인트 (530) 를 통해 직접 서비스와 상호작용할 수 있다.
서비스 적응계층 (540) 은 서비스 제공자가 서비스를 드러내고, 요청 및 응답을 처리하고 NEMO 프레임워크 안에서 서비스를 오케스트레이션 하기 위해 위한 공통적 방식을 제공한다. 이것은 서비스를 게시하는 하나의 논리적 포인트로서 다른 서비스 인터페이스 바인딩을 구현하기 위한 근거를 제공한다.
서비스 제공자의 원시 서비스를 다른 NEMO 가능 (enabled) 노드에 드러내기 위한 공통된 방식을 제공하는 것 외에도 서비스 적응계층 (540) 은 도 5b 에 도시된 것처럼 다른 서비스 인터페이스 바인딩 (560) 을 지원하기 위해 컴포넌트들의 계층을 만들기 위한 자연스러운 공간을 제공한다. 추가적인 서비스 인터페이스 바인딩을 지원함으로써 서비스 제공자는 호환이 가능한 바인딩을 교섭해서 서비스 액세스 포인트에 의해 또는 다른 원시 API 를 통해 사용될 수 있는 가능성을 증가시킨다.
도 5a 를 다시 참조해 보면, 워크플로 콜레이터 (550) 가 서비스 메시지의 관리 및 서비스 오케스트레이션 (orchestration) 을 지원한다. 한 노드가 요청 및 응답 메시지 수집을 관리하고 처리하도록 하나의 공통 인터페이스를 제공한다. 그러면 이 인터페이스는 그러한 서비스와 관련된 메시지의 관리를 통해 서비스를 오케스트레이션하기 위한 기본적인 구성요소를 제공한다. 이 인터페이스는 보 통 메시지 라우팅 기능은 물론 메시지의 중간 대기 (queuing) 및 대조 (collating) 기능을 지원하는 노드에 의해 구현된다.
일부 실시예에서, NEMO 프레임워크는 개체의 네트워크 참여를 도와주는 선택적 지원 서비스들을 포함한다. 그러한 서비스는 다양한 유형의 기능과 그러한 서비스를 요청하는 개체의 유형 (예를 들면, 서비스 제공자가 필요로 하는 것과는 반대되는 서비스 지원 클라이언트 애플리케이션) 에 따라 분류할 수 있다. 대표적인 지원 서비스에는 다음과 같은 서비스가 포함된다:
WSDL 포맷팅 및 조작 루틴 - WSDL 기반 서비스 메시지의 생성과 조작을 위한 기능을 제공한다.
서비스 캐시 - 노드가 발견된 노드와 노드가 지원하는 서비스 사이의 맵핑을 관리할 수 있도록 공통 인터페이스를 제공한다.
통지 (Notification) 프로세서 인터페이스 - 통지 처리를 지원하는 NEMO 노드를 잘 정의된 통지 처리 엔진으로 확장하기 위한 공통 서비스 제공자 인터페이스를 제공한다.
기타 지원 기능 - 메시지 ID 생성, 타임스탬프 (timestamp) 등을 생성하기 위한 루틴이 포함된다.
3.2. 기본적인 노드 상호작용
NEMO 노드의 개별 구성요소를 자세히 살펴보기 전에, 노드가 다른 노드와 상호작용 및 통신하는 방식을 먼저 이해하는 것이 도움이 될 것이다. 동기 및 비동기 RPC식 통신에서 단방향 인터페이스 호출 및 클라이언트 콜백까지 다양한 통신 양식이 지원된다.
비동기식 RPC 전달 방식 - 이 모델은 요청을 실행하는 데에 상당한 시간이 걸릴 것으로 예상되고 클라이언트가 오래 기다리길 원치 않을 경우에 특히 적합하다. 클라이언트는 요청을 제출하면서 어떤 서비스 제공 노드에 의해서건 비동기식으로 처리될 것으로 기대한다. 이 경우, 서비스를 제공하는 엔드포인트 (endpoint) 는 응답할 때 이 모델을 지원하지 않는다는 것을 알리거나 서비스를 제공하는 노드가 이 모델을 지원하는 경우, 이후의 요청에서 클라이언트의 요청에 대한 응답을 가지고 있는지 결정하기 위해 특정 서비스 제공 노드로 제출할 수 있는 티켓을 포함한 응답을 반환할 것이다.
일 실시예에서, 이 모델을 지원하는 서비스 제공 노드는 내부 정책에 따라 보류중인 클라이언트 요청에 대한 응답을 저장하고 있어야 한다. 클라이언트가 그러한 요청과 관련된 티켓을 회수하려고 하거나 서비스 제공 노드가 응답을 버린 경우, 적절한 오류 응답이 반환된다. 이 실시예에서 응답을 위한 티켓을 회수하기 위해 후속적인 요청을 할 것인지 결정하는 것은 클라이언트의 몫이다.
동기식 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) 은 맵핑 계층 (640) (SOAP 메시지를 SAP 인터페이스 (620) 와 맵핑시키는) 과 신뢰 관리 처리 계층 (650) (가령, SOAP 헤더에 포함되어 전달된 신임장을 이용해서 웹-보안을 활용할 수 있는) 도움을 받아 SOAP 메시지를 생성하고 해석한다.
NEMO 노드 사이의 상호작용을 보여주는 또 다른 예가 도 6b 에 도시되어 있 다. 서비스 제공 노드 (682) 가 클라이언트 노드 (684) 와 SAP (686) 를 이용해서 상호작용하고 있다. 이 예에서 서비스 제공 노드 (682) 는 클라이언트 (684) 와는 다른, 하지만 상호연동이 가능한 신뢰관리계층을 포함하고 있다. 특히, 서비스 제공 노드 (682) 는 신뢰 엔진 (688) 과 인가 엔진 (690) 모두를 포함하고 있다. 이 예에서, 신뢰 엔진 (688) 은 SOAP 메시지의 암호화 및 해독, 디지털 인증서 검증 그리고 기타 기본적인 암호화 작업을 전반적으로 책임지는 한편, 인가 엔진 (690) 은 더 높은 수준의 정책 결정을 책임진다. 도 6b 에 보이는 예에서 클라이언트 노드 (684) 는 신뢰 엔진 (692) 을 포함하고 있지만 인가 엔진은 포함하고 있지 않다. 따라서 클라이언트 노드 (684) 가 기본적인 암호화 작업을 실행하고 비교적 간단한 정책 (예를 들면 메시지 인증 수준, 기밀성 등과 관련된 정책) 을 이행하겠지만, 서비스 제공 노드 (682) 가 제공하는 서비스 및/또는 콘텐츠의 이용과 상호작용과 관련된 더 높은 수준의 정책을 평가하고 이행하는 일은 서비스 제공 노드 (682) 에게 의존해야 할 것이다. 도 6b 는 제한이 아니라 예시의 목적으로 제공되었으며 다른 실시예에서는 클라이언트 노드 (684) 역시 인가 엔진을 포함할 수 있다는 것을 인식할 필요가 있는데, 클라이언트가 지정된 정책과 관련된 일단의 의무를 준수해야 할 때가 바로 그런 경우이다. 따라서 서로 다른 NEMO 피어들이 각자의 요건에 따라 신뢰 관리 프레임워크의 서로 다른 부분들을 포함할 수 있는 것으로 볼 수 있다. 도 6b 는 노드 사이의 통신 링크가 전송 (transport) 에 얽매이지 않을 수 있음을 보여준다. 심지어 SOAP 처리 모델의 맥락에서도, 적절한 데이터 인코딩 및/또는 처리 규칙을 사용할 수 있다. 예를 들어, XML 보안 모델은 다른 인코딩 체계를 지원하는 다른 보안 모델로 대체할 수 있다.
서비스 액세스 포인트는 클라이언트의 경계 안에서 (공유 라이브러리의 형태로) 또는 클라이언트의 경계 밖에서 (다른 프로세스로 실행되는 에이전트의 형태로) 다양한 형태로 구현할 수 있다. 정확한 형태의 서비스 액세스 포인트는 특정 유형의 플랫폼이나 클라이언트의 필요에 맞게 맞춤식으로 구현할 수 있다. 클라이언트의 관점에서 볼 때 서비스 액세스 포인트의 이용은 선택 사항일 수 있지만 아래의 설명처럼 대체로 매우 유용하다.
서비스 액세스 포인트는 고정된 서비스 프로토콜 바인딩 집합만 지원하는 정적 컴포넌트로 구현할 수도 있고 동적으로 새로운 바인딩을 지원할 수도 있다.
서비스 액세스 포인트와 관련된 상호작용은 적어도 두 가지 관점에서 특징을 설명할 수 있다-요청하는 참가자가 이용하는 클라이언트측 관점과 다른 NEMO 가능 엔드포인트 (노드) 와 상호작용하는 서비스측 관점.
도 7a 에 도시된 클라이언트측 실시예에서, 서비스 액세스 포인트 (710) 는 클라이언트 (720) 와 직접 XML 메시지를 교환한다. 클라이언트 (720) 는 요청 메시지 (740) 를 직접 형성해서 서비스 액세스 포인트 (710) 에 제출하면 서비스 액세스 포인트 (710) 가 하나 이상의 응답 메시지 (750) 를 생성해 클라이언트 (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) 의 적절한 서비스 바인딩을 발견하도록 허락하고 싶을 수도 있다. 마지막으로, 서비스 액세스 포인트 (731) 가 중간 노드 (733) 를 활용하고자 하는 또 다른 이유는 중간 노드가 더 견고한 (robust) 수집 및 대조 (collating) 기능을 지원하고 이러한 기능은 다시 서비스 액세스 포인트 (731) 와 엔드포인트 노드 (735) 와 같은 서비스 제공자 사이에 더 유연한 통신을 허용하기 때문이다.
위의 기본적인 서비스측 상호작용 패턴 외에, 이러한 패턴의 조합이나 새로운 패턴을 서비스 액세스 포인트 내에 구현할 수 있다. 서비스 액세스 포인트는 공통 인터페이스를 제공하기 위한 것이지만, 그 구현은 통신 모델의 특성과 특정 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) 플래그를 받는다. 보통 이 플래그는, 응답과 관련된 메시지가 없거나 그 응답이 다른 채널 (통지와 같은) 을 통해 비동기식으로 반환되는 메시지의 경우를 제외하고는 참 (true) 일 것이다. 결과 메시지는 결과 오류 상태를 전달할 수도 있다.
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 이 사용되었다.
그러한 서비스 설명은 특정 인터페이스에서 서비스를 바인딩하는 방법을 정의하는 것에 덧붙여 서비스에 대한 엑세스 인가를 책임지게 될 하나 이상의 인가 서비스 제공자 목록과 서비스 목적과 이용에 대한 시맨틱 설명 포인터 그리고 하나 이상의 다른 서비스의 조율된 (choreographed) 실행으로 생겨나는 복합 서비스를 위해 필요한 오케스트레이션에 대한 설명도 포함하고 있다.
서비스가 노출되는 논리 포인트 (logical point) 역할을 하는 것 외에 서비스 적응계층은 NEMO 데이터 유형과 특정 참가자에 의해 지원되는 플랫폼을 위해 NEMO 서비스 프로필에 지정된 오브젝트의 명확한 표현을 캡슐화한다. 또한 서비스 관련 메시지를 적절한 원시 (native) 서비스 구현으로 맵핑하기 위한 메커니즘을 포함하고 있다.
일 실시예에서, NEMO 프레임워크는 특정 플랫폼이나 참가자를 위한 서비스 적응계층이 실현되는 방식을 강제로 지정하지 않는다. 서비스 제공 노드가 원시 (native) 서비스 프로토콜의 번역을 요구하지 않는 - 즉, 원시 프로토콜을 통해서 통신할 수 있는 클라이언트 노드에게만 서비스를 노출하는- 상황에서, 서비스 제공 노드는 서비스 적응계층을 포함할 필요가 없다.
다른 경우라면, 서비스 적응계층은 보통 도 8 에 도시된 것처럼 다음과 같은 요소들을 포함한다:
진입점 - 서비스 인터페이스 진입점 (810) 과 관련 WSDL 바인딩을 포함하고 있는 계층. 이러한 액세스 포인트를 통해 다른 노드들이 서비스를 호출하고, 파라미터 데이터를 보내고 결과를 수집한다.
메시지 처리 로직 - 메시지 처리를 위한 로직에 상응하는 계층 (820) 으로 보통 메시지 처리를 담당하는 메시지 펌프 (825) 와 XML 데이터 바인딩 지원 (826) 그리고 낮은 수준의 XML 파서 (parser) 와 데이터 표현 지원 (827) 을 포함한다.
원시(native) 서비스 - 원시 서비스가 이용가능한지 표현하는 계층으로(여기에서 상응하는 서비스 메시지가 매핑된다) 원시 서비스 API (830) 과 그에 상응하는 구현 (840) 을 포함한다.
3.5. 워크플로 콜레이터 (Workflow Collator)
바람직한 실시예에서, 워크플로 콜레이터 (WFC) 는 요청 이벤트의 흐름을 조정하고, 비상주 (transient) 및 중간 결과를 포함한 관련 데이터를 관리하고, 요청의 이행에 관련된 규칙을 시행함으로써 대부분의 비단순 NEMO 서비스 요청을 이행하도록 돕는다. 이 유형의 기능을 보여주는 예는 관계형 데이터베이스의 단순 트랜잭션 모니터에서부터 마이크로소프트 MTS/COM+ 에서 볼 수 있는 좀 더 일반화된 모니터까지 트랜잭션 코디네이터의 형태에서 찾아볼 수 있다.
일 실시예에서, 워크플로 콜레이터는 프로그래밍이 가능한 메커니즘으로, 이 메커니즘을 통해 NEMO 노드가 서비스 호출 처리 및 이행을 오케스트레이션한다. WFC는 특정 NEMO 노드의 특성과 요건에 따라 맞춤 설계가 가능하며, 전통적인 메시지 큐 (queues) 에서부터 좀 더 정교한 분산 트랜잭션 코디네이터까지 다양한 기능을 지원하도록 설계할 수 있다. 비교적 단순한 WFC 는 임의적 서비스 메시지의 저장과 검색을 위한 인터페이스를 제공할 것이다. 이것을 토대로 복합 서비스 를 생성하기 위해서 (i) 더욱 효율적으로 처리하기 위해 서비스 요청을 수집하고, (ii) 서비스 응답들을 모아 복합 응답으로 만들고, (iii) 다수의 서비스 요청과 서비스 응답을 수동으로 오케스트레이션 함으로써 복합 서비스 (composite service) 를 생성하고, (iv) 다수의 서비스 요청과 서비스 응답을 자동으로 오케스트레이션하는 것을 포함하는 광범위한 다양한 기능을 지원할 수 있다.
기본적인 서비스 상호작용 패턴은 서비스 요청이 NEMO 노드에, 노드의 서비스 적응계층을 통해 도달하면서 시작된다. 메시지는 WSDL 메시지 펌프로 건네져 처음에는 WFC를 구동하고 다시 WFC에 의해 구동되어 요청을 이행하고 응답을 반환한다. 좀 더 복잡한 시나리오에서 서비스 요청의 이행을 위해서 다수의 메시지와 응답이 필요하고 다수 노드가 조정된 방식으로 참여할 필요가 있다. 요청을 처리하기 위한 규칙은 시스템의 서비스 설명 언어로 또는 BPEL 과 같은 다른 서비스 오케스트레이션 설명 표준을 이용해서 표현할 수 있다.
WFC 에 메시지가 제공되면 WFC 는 이 요청을 처리하기 위한 정확한 규칙을 결정한다. WFC 의 구현에 따라, 서비스 설명 로직은 노드가 노출하는 서비스 집합을 위한 고정 상태 머신의 형태로 표현되거나 좀 더 자유로운 형태의 서비스 처리 로직 표현의 처리를 지원하는 방식으로 표현될 수도 있다.
바람직한 실시예에서 WFC 구조는 모듈형이고 확장이 가능해 플러그인을 지원한다. 서비스 구성을 해석하고 규칙을 처리하는 것 외에도, WFC 는 NEMO 메시지를 서비스 이행 처리 수명주기 (lifecycle) 를 시작하는 컨텍스트에서 이용할 것인지 아니면 지속적인 트랜잭션 체인의 입력으로 이용할 것인지 결정해야 한다. 일 실시예에서, 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 를 기초로) 정확한 처리를 위해 클라이언트와 어떤 작업 단계에 있는지 계속 추적한다. 위에서 언급했듯이, 상태 머신 (state machine) 또는 유사한 메커니즘이나 기법을 이용해서 이러한 다수의 통신 (950) 단계를 처리할 수 있다.
도 9c 는 서비스 제공 노드 (960) 내에서 이루어지는 워크플로 콜레이터 (914) 와 메시지 펌프 (965) (나타나지는 않지만 노드의 서비스 적응계층 내의) 사이의 비교적 기본적인 상호작용을 보여주는 실시예를 도시하고 있다. 위에서 언급했듯이, 워크플로 콜레이터 (914) 가 하나 이상의 서비스 요청 (962) 를 처리 하고 응답 (964) 를 산출하면서 저장 및 검색 메커니즘 (966) 을 이용해 이 오케스트레이션 과정의 상태를 보관한다. 이 단순한 예에서, 워크플로 콜레이터 (914) 는 다수의 서비스 요청과 응답을 처리할 수 있는데 상당히 단순한 상태 머신 (state machine) 으로 구현 가능하다.
그러나 더 복잡한 프로세싱의 경우 도 9d는 서비스 오케스트레이션 수행 시 구동하거나 구동될 수 있는 노드 아키텍처를 도시한다. 이러한 기능에는 복합 (composite) 서비스를 생성하기 위한 여러 서비스 요청 모음, 복수의 응답을 복합 (composite) 응답으로 집합, 여러 서비스 요청 및 응답의 수작업 또는 자동 오케스트레이션이 포함된다.
도 9d 의 워크플로 콜레이터 (914) 를 중심으로 하는 아키텍처는 다양한 시나리오를 지원할 수 있다. 예를 들어, NEMO 노드의 기능을 프로세스 오케스트레이션의 시맨틱 (예: 서비스와 연관된 비즈니스 프로세스의 고수준 설명을 통해 구동되는 비즈니스 프로세스 언어 엔진) 이나 리소스 사용 시맨틱 (예: 서로 관련된 리소스의 시맨틱 의미로 구동될 수 있는 리소스 설명 프레임워크 즉 RDF 엔진) 을 인식하는 외부 코디네이터 (970) 의 기능과 결합하면 더욱 강력한 서비스를 간단히 생성할 수 있다. 사용자 정의 외부 BPL (972) 및 RDF (973) 프로세서는 사람의 개입과 같은 수작업 오케스트레이션 프로세스 (966) 를 통해 외부 엔진 메시지 펌프 (975) 를 활용하여 프로세스 설명을 실행할 수 있다.
NEMO 노드의 메시지 펌프와 함께 작동하는 외부 코디네이터를 통해 수작업으로 구동되는 프로세스 이외에도 모듈이 워크플로 콜레이터 (914) 와 직접 통합되어 자동화된 서비스 조정 및 오케스트레이션 (968) 형식을 지원하는 아키텍처를 생성할 수 있다. 예를 들어, BPEL 및 EBXML 처럼 서비스 인터페이스와 연관된 웹 서비스 바인딩에서 통신하는 서비스 오케스트레이션 패턴의 일반 유형인 경우 워크플로 콜레이터 (914) 는 시간에 따라 도착하는 설명과 요청 및 응답 메시지 (967) 모음을 통해 직접 구동될 수 있다. 이 시나리오에서 복합 응답 메시지는 지정된 오케스트레이션 프로세서 플러그인 (예: BPEL (982) 또는 EBXML (983) ) 과 연관된 상태 시스템 (state machine) 이 적절한 것으로 판명된 경우에만 메시지 펌프 (965) 로 푸시 (push) 된다.
다음은 NEMO 워크플로 콜레이터의 구현을 통해 엑스포트 되는 비교적 고수준 API 설명의 구현이다.
W orkflowCollator::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 - 호출자가 API 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가 반드시 타동사일 필요는 없음.
3.6. 전형적인 DRM 엔진 아키텍처
위에서 설명한 NEMO 노드 아키텍처의 다양한 구현 컨텍스트에서 그림 10 은 DRM 엔진 (1000) 의 모듈식 구현을 NEMO 콘텐츠 소비 기기로 통합함으로써 여러 다 른 기기와 소프트웨어 환경으로 쉽게 통합할 수 있음을 보여준다.
호스트 응용 프로그램 (1002) 은 일반적으로 요청을 수신하여 사용자 인터페이스 (1004) 를 통해 특정 콘텐츠에 액세스한다. 그런 다음 호스트 애플리케이션 (1002) 은 요청을 관련 DRM 엔진 오브젝트 (대개 호스트 애플리케이션에 대해 불투명) 와 함께 DRM 엔진 (1000) 으로 보낸다. DRM 엔진 (1000) 은 잘 정의된 인터페이스를 통해 호스트 서비스 모듈 (1008) 에 추가 정보와 암호화 서비스를 요청한다. 예를 들어, DRM 엔진 (1000) 은 호스트 서비스 (1008) 에게 특정 링크가 트러스트 (trust) 되었는지 여부를 묻거나 특정 오브젝트의 암호가 해독되었는지 질문할 수 있다. 필수 정보 중 일부는 원격 위치에 있을 수 있으며 이 경우에 호스트 서비스 (1008) 는 서비스 액세스 포인트 (1014) 를 통해 네트워크에 연결된 서비스로부터 정보를 요청할 수 있다.
DRM 엔진 (1000) 이 특정 연산이 허용된다고 결정하면 이를 나타내고 필요한 암호화 키를 호스트 서비스 (1008) 에게 반환한다. 호스트 서비스는 호스트 애플리케이션 (1002) 의 통제 하에 콘텐츠 서비스 (1016) 를 통해 필요한 콘텐츠를 획득하고 사용을 관리한다. 그런 다음 호스트 서비스 (1008) 는 미디어 렌더링 (1010) 프로세스 (예컨대, 스피커를 통해 콘텐츠를 재생하거나 화면에 콘텐츠 표시 등) 를 초기화하고 필요한 경우 암호화 서비스 (1012) 와 통합한다.
도 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 (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) 의 힙 메모리 내에 할당되는 바이트 배열이다. 주어진 VM 구현의 경우 메모리 공간의 크기는 대개 최대값으로 고정되어 있으며 이 공간 밖의 메모리에 액세스 하려고 하면 오류가 발생하고 프로그램 실행이 중단된다. 데이터 세그먼트는 VM에 의해 동시에 로딩 되는 여러 코드 모듈 (1102) 간에 잠재적으로 공유된다. 데이터 세그먼트의 메모리는 메모리 액세스 명령을 통해 액세스할 수 있으며 32 비트 또는 8 비트 액세스가 가능하다. 32 비트 메모리 액세스는 빅인디안 (big-endian) 바이트 순서를 사용한다. VM 인식 메모리와 호스트 관리 메모리 (호스트 CPU 버추얼 또는 물리적 메모리) 간의 정렬에 대해 어떠한 가정도 하지 않는다.
단일 구현에서 코드 세그먼트는 주소 0 에서 시작하는 연속적인 플랫 메모리 공간이다. 코드 세그먼트는 일반적으로 호스트 애플리케이션 (1130) 이나 호스트 환경 (1120) 의 힙 (heap) 메모리 내에 할당되는 바이트 배열 (array) 이다.
컨트롤 VM (1110) 은 여러 코드 모듈을 로딩 할 수 있고 모든 코드 모듈이 동일한 데이터 세그먼트를 공유할 수 있지만 (각 모듈의 데이터는 대개 다른 주소에 로딩 됨), 각각 자체 코드 세그먼트를 가진다. (예를 들어, 특정 코드 모듈 (1102) 의 점프 명령으로 다른 코드 모듈 (1102) 에 있는 코드로 직접 점프할 수 없다.)
데이터 스택
바람직한 실시예에서 VM 은 데이터 스택을 의미하며 데이터 세그먼트에 저장된 32비트 데이터 셀을 나타낸다. VM 은 가상 레지스터 호출 스택 포인터 (SP) 를 사용한다. 재설정 후에 SP는 데이터 세그먼트의 끝을 가리키고 스택은 아래로 증가한다. (데이터 스택으로 데이터가 푸시되면 SP 레지스터가 감소한다.) 스택의 32비트 값은 스택 데이터를 참조하는 명령에 따라 32 비트 주소나 32 비트 부호있는 (signed) 정수로 해석된다.
호출 스택
단일 구현에서 컨트롤 VM (1110) 은 중첩된 서브루틴 호출을 위해 호출 스택을 관리한다. 이 스택으로 푸시된 값은 메모리 액세스 명령을 통해 직접 읽거나 쓸 수 없지만 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 스왑 맨 위에 있는 두 개의 스택 요소 스왑
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가 음수이면 -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가 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 스택 포인터 푸시 A SP의 값을 푸시
OP_POPSP 스택 포인터 팝 SP의 값을 A로 설정
OP_CALL 시스템 호출 A 인덱스 A로 시스템 호출 수행
OP_STOP 중지 실행 종료
모듈 형식
단일 구현에서 코드 모듈 (1102) 은 MPEG-4 파일 형식에서 사용되는 원자 (atom) 구조와 같은 원자 기반 형식으로 저장된다. 원자는 32 비트로 구성되며 빅인디안 바이트 순서로 4옥텟 다음에 4옥텟 유형 (대개 알파벳 문자의 ASCII 값에 해당하는 옥텟) 과 원자의 페이로드 (8 옥텟 크기) 순서로 저장된다.
3.7. DRM 클라이언트-서버 아키텍처: 콘텐츠 소비 및 패키징
위에서 언급한 것처럼 DRM 클라이언트측 소비 애플리케이션 (미디어 플레이어 등) 은 DRM 콘텐츠를 소비한다 (음악 연주, 영화 상영 등). DRM 클라이언트를 대상으로 하는 DRM 서비스측 패키징 애플리케이션 (대개 서버 상에 있음) 패키지 컨텐트 (콘텐츠 관련 사용 및 배포 권한, 암호화 키 등).
도 12a 는 DRM 클라이언트의 주요 아키텍처 요소의 단일 실시예를 보여준다. 호스트 애플리케이션 (1200) 은 사용자 인터페이스 (1210) 를 통해 기기 사용자 (음악 재생기 소유자) 와 통신한다. 예를 들어, 사용자가 보호된 콘텐츠에 대한 액세스를 요청하면 콘텐츠와 함께 메타 데이터를 받는다 (노래 자체의 오디오와 함께 작곡가의 이름과 노래 제목을 표시하는 텍스트 등).
호스트 애플리케이션 (1200) 은 사용자 인터페이스 (UI) (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) 과 간접적으로 통신한다. 미디어 렌더링 엔진 (1260) 에서 암호 서비스 (1230) 를 사용하여 콘텐츠 암호 해독을 수행할 수도 있다.
서비스측으로 돌아가서 도12b는 예시된 DRM 서비스측 패키징 노드의 기본 아키텍처 구조의 구현을 도시한다. 호스트 애플리케이션 (1200) 은 사용자 인터페이스 (1210) 를 통해 콘텐츠 패키저 (예: 음악 콘텐츠 소유자 또는 배포자) 와 통신한다. 패키저는 콘텐츠를 보호하고 (예: 암호화 및 액세스 권한 제한) 다양한 사용자에게 배포하고 콘텐츠 제공 노드를 중개 (intermediate) 하기 위해 호스트 애플리케이션 (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 콘텐츠 보호 및 통제 (governance) 오브젝트
예시된 시나리오에서 콘텐츠 제공자는 DRM 패키저 엔진을 통해 콘텐츠를 보호하고 콘텐츠 사용을 통제하는 호스트 애플리케이션을 사용하며 여기에는 콘텐츠 암호화 키를 획득하는 데 필요한 정보 전달이 포함된다. "license" 라는 용어는 이러한 오브젝트 집합을 포괄하는 데 사용된다.
바람직한 실시예에서 콘텐츠와 라이센스는 논리적으로 별개이지만 오브젝트 ID를 사용하는 내부 레퍼런스를 통해 바인딩된다. 콘텐츠와 라이센스는 대개 함께 저장되지만 필요한 경우 별도로 저장될 수도 있다. 한 라이센스를 두 개 이상의 콘텐츠 항목에 적용하거나 두 개 이상의 라이센스를 단일 콘텐츠 항목에 적용할 수도 있다.
도 13 은 아래 설명된 오브젝트 집합 간의 관계를 포함하여 이러한 라이센스의 구현을 도시한다. 컨트롤 오브젝트 (1320) 와 컨트롤러 오브젝트 (1330) 는 모두 서명된 오브젝트이므로 DRM 클라이언트 엔진이 호스트 애플리케이션에게 보호된 콘텐츠에 대한 액세스 권한을 제공하기 전에 컨트롤 정보의 출처를 신뢰할 수 있는지 확인할 수 있다. 이 실시예에서 이러한 오브젝트는 콘텐츠 오브젝트 (1300) 를 제외하고 모두 DRM 클라이언트 엔진에 의해 생성된다.
콘텐츠 오브젝트 - 콘텐츠 오브젝트 (1300) 는 고유 ID (1302) 를 사용하여 콘텐츠와 관련 키 간의 바인딩을 처리하는 암호화된 콘텐츠 (1304) 를 나타낸다. 콘텐츠 오브젝트 (1300) 는 "외부" 오브젝트이다. 암호화된 콘텐츠 (1304) (MP4 동영상 파일, MP3 음악 트랙 등) 의 형식과 저장은 부분적으로 콘텐츠 유형에 따라 호스트 애플리케이션이나 서비스로의 위임을 통해 결정된다. 또한 콘텐츠의 형식은 ID (1302) 를 암호화된 콘텐츠 (1304) 와 연결하는 기능을 제공한다. 패키저의 호스트 애플리케이션은 AES와 같은 대칭키 암호 등 사용 가능한 암호 시 스템을 통해 포맷 의존적인 방식으로 콘텐츠를 암호화하고 콘텐츠 오브젝트 (1300) 를 관리한다.
ContentKey 오브젝트 - ContentKey 오브젝트 (1310) 는 암호화된 키 데이터 (1314) (선택적으로 오브젝트 내에 내부적으로 저장되는 고유 암호화 키 포함) 를 나타내며 해당 고유 ID (1312) 를 가지고 있다. 대개 이 키 데이터는 ContentKey 오브젝트 (1310) 내부에 포함된 경우 콘텐츠의 암호 해독 권한이 있는 사람만 식별할 수 있도록 자체적으로 암호화된다. 또한 ContentKey 오브젝트 (1310) 는 이 키 데이터의 암호화에 사용된 암호 시스템을 지정한다. 이 암호 시스템은 "키 배포 시스템"으로 불리며 아래 구현 방법이 자세히 설명되어 있다.
컨트롤 오브젝트 - 컨트롤 오브젝트 (1320) 는 콘텐츠 암호화 및 암호 해독에 사용되는 키에 대한 사용 통제 규칙을 나타내는 컨트롤 프로그램 (예: 컨트롤 바이트 코드 (1324) ) 을 포함하고 보호한다. 또한 해당 ContentKey 오브젝트로 바인딩될 수 있도록 ID (1322) 를 포함한다. 위에 언급된 것처럼 컨트롤 오브젝트 (1320) 는 DRM 클라이언트 엔진이 ContentKey (1310) 와 컨트롤 (1320) 간에 바인딩은 물론 ContentKey ID (1312) 와 암호화된 키 데이터 (1314) 간에 바인딩의 유효성을 검증할 수 있도록 서명된다. 컨트롤 바이트 코드 (1324) 의 유효성은 선택적으로 컨트롤러 오브젝트 (1330) 에 포함된 보안 해시 (hash) (예: 가용한 경우의 컨트롤 해시 (1338)) 검증을 통해 도출될 수 있다.
컨트롤러 오브젝트 - 컨트롤러 오브젝트 (1330) 는 키와 해당 키의 컨트롤을 제어하는 규칙 간의 바인딩을 나타내며 각각 ID (1312 및 1322) 를 사용하여 ContentKey (1310) 와 컨트롤 (1320) 오브젝트를 바인딩한다. 컨트롤러 오브젝트 (1330) 는 해당 콘텐츠에 대한 규칙의 적용을 제어함으로써 (예를 들어, ContentKey 오브젝트 (1310) 를 제어할 컨트롤을 지정함으로써) 보호된 콘텐츠의 사용을 제어한다. 또한 컨트롤러 오브젝트 (1330) 는 각 ContenttKey 오브젝트 (1310) 와 해당 암호화된 키 데이터 (1314) 간의 바인딩을 조작하지 못하도록 레퍼런스 하는 각 ContentKey 오브젝트 (1310) 에 대한 해시 (1336) 값을 포함한다. 위에서 언급한 것처럼 컨트롤러 오브젝트 (1330) 는 ContentKey (1310) 와 컨트롤 (1320) 오브젝트 간에 바인딩은 물론 ContentKey ID (1312) 와 암호화된 키 데이터 (1314) 간에 바인딩의 유효성을 검증할 수 있도록 대개 서명된다. (예를 들어, 패키저 애플리케이션은 아래 설명된 것처럼 공개 키나 대칭 키 서명을 사용하여 컨트롤러 오브젝트를 서명할 수 있는 인증서를 가지고 있다.) 위에서 언급된 것처럼 컨트롤러 오브젝트 (1330) 는 선택적으로 컨트롤 해시 (1338) 도 포함하며 이 경우 별도로 서명을 확인하지 않고 컨트롤 오브젝트 (1320) 의 유효성을 도출할 수 있다.
대칭 키 서명 - 바람직한 실시예에서 대칭 키 서명은 컨트롤러 오브젝트 (1330) 에 대한 가장 일반적인 서명 유형이다. 일 실시예에서 이러한 서명 유형은 ContentKey 오브젝트 (1310) 가 나타내는 키와 동일한 키를 지정하여 컨트롤러 오브젝트 (1330) 의 MAC (Message Authentication Code) 을 계산하는 방식으로 구현된다.
공개 키 서명 - 바람직한 실시예에서 이러한 유형의 서명은 컨트롤러 오브젝 트 (1330) 의 서명자 신원을 고유하게 확인할 필요가 있는 경우에 사용된다. 이러한 유형의 서명은 공개 키 알고리즘을 사용하여 구현되며 해당 오브젝트의 유효성을 확인할 당사자의 비공개 키로 서명된다. 이러한 유형의 서명을 사용할 경우 컨트롤러 오브젝트 (1330) 에 전달되는 ContentKey 바인딩 정보는 대개 ContentKey 오브젝트 (1310) 에 있는 키의 해시 (1336) 를 포함하며 서명된 비공개 키의 지문 (일반적으로 비공개 키의 해시) 으로 연결된다. 이러한 바인딩을 통해 오브젝트의 서명자가 콘텐츠를 보호하는 데 사용되는 키를 알 수 있다.
Protector 오브젝트 - Protector 오브젝트 (1340) 는 콘텐츠 암호화 및 암호 해독에 사용되는 키를 제어함으로써 해당 콘텐츠에 대한 액세스를 보호한다. Protector 오브젝트 (1340) 는 보호된 콘텐츠를 해당 키와 연결하기 위해 콘텐츠 오브젝트 (1300) 를 ContentKey 오브젝트 (1310) 로 바인딩한다. Protector 오브젝트는 이러한 바인딩을 달성하기 위해 콘텐츠 (1300) 와 ContentKey (1310) 의 ID (1302 및 1312) 에 대한 레퍼런스 (1342 및 1344) 를 포함한다. 일 실시예에서 Protector 오브젝트 (1340) 는 하나 이상의 콘텐츠 항목을 암호화하는 데 사용된 키는 물론 적용된 암호화 알고리즘에 대한 정보도 포함한다. 일 실시예에서 콘텐츠 레퍼런스 (1342) 가 두 개 이상의 콘텐츠 오브젝트 (1300) 를 레퍼런스하는 경우, ContentKey 레퍼런스 (1344) 는 여전히 하나의 ContentKey 오브젝트 (1310) 만 레퍼런스하며, 이는 해당 콘텐츠 항목이 모두 동일한 암호화 알고리즘과 동일한 키를 사용하여 암호화되었음을 나타낸다.
3.9. DRM 노드 및 링크 오브젝트
도 13 은 보호된 콘텐츠에 대한 액세스를 제어하기 위해 DRM 엔진에 의해 생성되는 콘텐츠 보호 및 통제 (governance) 오브젝트를 도시하고 도 14는 시스템의 개체 (사용자, 기기 또는 그룹) 및 해당 개체 간의 관계를 나타내는 DRM 오브젝트를 도시한다.
위에서 언급되었듯이 도 4 는 개체와 이들의 관계를 나타내는 노드 또는 인가 그래프의 개념적 구현을 도시하는 반면에, 도 14는 개념적 그래프의 실시예를 구현하는 두 가지 오브젝트 유형을 도시한다. 버텍스 (또는 "노드") 오브젝트 (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) ) 은 시스템이 ContentKey 배포에 ContentKey 유도 시스템을 사용하는 경우 선택적으로 링크 오브젝트와 함께 사용될 수 있으며 이에 대해서는 아래 자세히 설명되어 있다. 콘텐츠 항목 자체는 콘텐츠 보호 대칭 키를 통해 보호될 수 있다 (예: 노드 1400a의 대칭 키 (1402a) 및 노드 1400b의 키 (1402b)).
위에서 언급된 것처럼 일 실시예에서 링크 오브젝트 (예: 링크 (1420)) 는 노드 간의 관계를 나타낸다. 이러한 관계의 시맨틱은 노드 속성에 저장되고 (예: 노드 1400a 의 1401a 및 노드 1400b 의 1401b) 링크 오브젝트 내에서 레퍼런스 될 수 있다 (예: 노드1400a의 노드 레퍼런스 (1422) 및 노드 1400b 의 노드 레퍼런스 (1424)). 또한 링크 오브젝트는 아래 설명된 것처럼 선택적으로 ContentKey 유도에 링크 오브젝트를 사용할 수 있는 암호 데이터 (예: 키 유도 정 보 (1426)) 를 포함할 수도 있다.
일 실시예에서 링크 오브젝트 자체는 서명된 오브젝트이며 위의 도 4에 나오는 것처럼 그래프에서 유향 에지 (directed edge) 로 나타난다. 한 노드 (예: 노드 X) 에서 다른 노드 (예: 노드 Y) 까지 이처럼 유향 에지가 있는 경우 노드 X에서 노드 Y까지의 "경로"는 노드 Y가 노드 X에서 "도달 가능함 (reachable) "을 나타낸다. 경로가 있는 경우 다른 DRM 오브젝트가 특정 기능을 수행하는 조건 등으로 사용할 수 있다. 컨트롤 오브젝트는 관련된 콘텐츠 오브젝트에서 특정 작업을 수행하기 전에 대상 노드에 도달할 수 있는지 여부를 파악할 수 있다.
예를 들어, 노드 D 가 콘텐츠 오브젝트에서 "재생" 작업을 수행하려는 기기를 나타내는 경우 이 콘텐츠 오브젝트를 통제하는 컨트롤이 노드 D 에서 특정 사용자를 나타내는 특정 노드 U 에 도달할 수 있는지 여부 (예: 사용자가 해당 기기의 "소유자" 인지 여부) 를 테스트하여 해당 조건이 충족되는 경우에만 "재생" 작업을 수행하도록 허용할 수 있다. 노드 U 가 도달 가능한지 파악하기 위해 DRM 엔진은 컨트롤 프로그램을 실행하여 노드 D 와 노드 U 사이에 경로 (예: 직접 또는 간접 관계) 를 설정할 수 있는 링크 오브젝트 집합이 있는지 여부를 파악할 수 있다. 위에서 언급된 것처럼 일 실시예에서 DRM 엔진은 관계의 시맨틱을 모르기 때문에 단순히 경로의 존재 여부와 호스트 응용 프로그램의 활성화 여부를 파악하여 이 경로를 조건부 인가로 해석하고 보호된 콘텐츠에 대한 액세스를 허용한다.
일 실시예에서 DRM 엔진은 링크 오브젝트를 사용하여 시스템 노드 그래프에서 경로의 존재 여부를 파악하기 전에 링크 오브젝트를 확인한다. 주어진 시간 에 링크 오브젝트의 유효성은 링크 오브젝트를 서명하는 데 사용되는 인증서 시스템 (아래 설명됨) 의 특정 기능에 따라 다르다. 예를 들어, 다양한 조건에 따라 시간별로 "유효 기간 (lifetime)" 을 제한하거나 철회하거나 재확인할 수도 있다.
또한 일 실시예에서 링크 오브젝트에 서명할 수 있는 개체와 생성할 수 있는 링크 오브젝트와 링크 오브젝트의 유효 기간을 통제하는 정책은 DRM 엔진에 의해 직접 처리되지 않는다. 대신, 노드 속성 정보를 사용할 수도 있다. 특정 정책을 적용하는 것은 시스템이 추가 제약조건 검사를 통해 표준 인증서 포맷을 확장하는 방법을 제공할 수 있다. 이러한 확장을 통해 링크에 서명하는 키에 대한 유효성 제약조건을 인증서에 명시할 수 있으며, 이러한 제약조건 (예: 링크에 연결된 노드의 유형 및 기타 속성) 은 링크가 유효한 것으로 간주되기 전에 검사될 수 있다.
마지막으로, 일 실시예에서 링크 오브젝트는 사용자에게 키 배포를 위한 노드의 콘텐츠 보호 키를 제공하는 암호 데이터를 포함할 수있다. 이러한 암호 데이터는 예를 들어, 메타 데이터와 함께 "수신 (to)" 노드의 콘텐츠 보호 공개 키 및/또는 콘텐츠 보호 대칭 키로 암호화된 "발신 (from)" 노드의 비공개 및/또는 대칭 콘텐츠 보호 키를 포함할 수 있다. 예를 들어, 특정 정책 하에서 기기 노드와 사용자 노드를 연결하는 링크 오브젝트를 생성할 수 있는 자격이 부여된 개체는 실제로 기기를 나타내는 속성을 가진 노드 오브젝트와 사용자를 나타내는 속성을 가진 노드 간에만 링크를 생성하는지 확인할 수 있다.
3.10. DRM 암호 키
도 15 에 DRM 키 배포 시스템의 실시예가 도시되어 있다. 도 15에 나오는 키 배포 시스템의 기본 원칙은 노드 오브젝트 간의 관계 설정이라는 기본 목표 이외에도 키를 배포하기 위해 링크 오브젝트를 사용한다는 것이다.
위에서 언급된 것처럼 컨트롤 오브젝트는 요청한 작업을 허용할지 여부를 결정하는 컨트롤 프로그램을 포함할 수 있다. 이 컨트롤 프로그램은 링크 오브젝트 컬렉션을 통해 특정 노드에 도달할 수 있는지 여부를 파악할 수 있다. 도 15 의 키 배포 시스템은 컨트롤 프로그램을 실행하는 DRM 엔진에 사용할 수 있는 키 배포를 원활히 하기 위해 링크 오브젝트 컬렉션에 대해 이러한 검색을 활용한다.
일 실시예에서 키 배포 시스템을 사용하는 각 노드 오브젝트는 하나 이상의 키를 가진다. 이러한 키는 콘텐츠 키와 다른 노드의 키 배포 키를 암호화하는 데 사용된다. 동일한 배치에서 사용하도록 생성된 링크 오브젝트는 링크 체인이 DRM 엔진에 의해 처리되는 경우에 키 정보를 유도할 수 있는 일부 암호 데이터 페이로드를 포함한다.
주어진 링크 컬렉션에서 이러한 방법으로 키를 전달하는 노드와 링크의 경우 (예: 노드 A 에서 노드 B... 노드 Z 로) 노드 A 의 비공개 키에 대한 액세스 권한이 있는 노드는 노드 Z의 비공개 키에 대해서도 액세스 권한이 있다.
키 배포 시스템에 참여하는 노드 오브젝트는 키를 데이터의 일부로 포함한다. 도 15 에 도시된 것처럼 일 실시예에서 각 노드 (1500a, 1500b 및 1500c) 는 세 개의 키를 가진다.
공개 캐 Kpub[N] - 공개 키 암호표에서 공개/비공개 키 쌍의 공개 부분이다. 실시예에서 이 키 (노드 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"
"ContentKey" 를 노드에 대한 대상으로 지정하는 것은 해당 노드의 비공개 키에 대한 액세스 권한이 있는 개체에 해당 키를 사용할 수 있음을 의미한다. 실시예에서 바인딩은 다음 방법 중 하나 또는 모두를 사용하여 키를 암호화하는 방식으로 수행된다.
공개 바인딩: Ep (Kpub[N], CK) 를 포함하는 ContentKey 오브젝트를 생성한다. 대칭 바인딩: Es (Ks[N], CK) 를 포함하는 ContentKey 오브젝트를 생성한다.
이 실시예에서는 주로 대칭 바인딩이 사용되는데 그 이유는 개체 수신이 그다지 까다롭지 않고 복잡한 연산이 필요 없는 알고리즘을 사용하기 때문이다. 러나 ContentKey 오브젝트를 생성하는 개체 (예: 콘텐츠 패키저) 가 Ks[N] 에 액세스하지 못하는 경우도 있다. 러한 경우에는 공개 바인딩을 사용할 수 있는데 그 이유는 Kpub[N] 은 기밀 정보가 아니기 때문이다. pub[N] 은 대개 ContentKey 를 대상으로 해야 하는 개체에서 사용할 수 있으며 해당 개체가 Kpub[N] 이 실제로 동의한 정책에 따라 ContentKey 를 신뢰하고 처리할 수 있는 노드의 키인지 조사를 통해 판별하기 위한 인증서가 함께 제공된다.
개체가 도달 가능한 모든 노드의 배포 키에 액세스할 수 있도록 일 실시예에 서 링크 오브젝트는 "페이로드" 를 포함한다. 이 페이로드는 링크의 "수신 노드 (to node)" 의 비공개 키에 대한 액세스 권한이 있는 개체가 링크의 "발신 노드 (from node)" 의 비공개 키에 대해서도 액세스 권한을 가질 수 있도록 한다. 이러한 방법으로 개체는 해당 노드에서 도달할 수 있는 노드로 향하는 모든 ContentKey 의 암호를 해독할 수 있다.
따라서 도 15 에서 노드 1500a 를 노드 1500b 에 연결하는 링크 1530a 는 노드 1500a 의 대칭 키 1515a 를 사용하거나 기밀 문제로 인해 이 대칭 키를 사용할 수 없는 경우 노드 1500a 의 공개 키 1525a 를 사용하여 노드 1500b 의 비공개 키 1515b 및 1525b 를 암호화하는 방식으로 생성되는 페이로드를 포함한다. 마찬가지로 노드 1500b 를 노드 1500c 에 연결하는 링크 1530b 는 노드 1500b 의 대칭 키 1515b 를 사용하거나 이를 사용할 수 없는 경우 노드 1500b 의 공개 키 1525b 를 사용하여 노드 1500c 의 비공개 키 1515c 및 1525c 를 암호화하는 방식으로 생성되는 페이로드를 포함한다.
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) 는 링크 (1530a) 내의 ContentKey 오브젝트 (1555a) 를 암호해독하는 데 사용되며 (공개 키 (1505a) 를 통한 공개 바인딩이 사용된 경우 공개 도출용 비공개 키 (1515a) 사용 또는 대칭 키 (1525a) 를 통한 대칭 바인딩이 사용된 경우 대칭 도출용 대칭 키 (1525a) 사용), 결과는 키 체인 (1550) 의 다음 링크 (1570) 이다 (예: 노드 1500b의 기밀 키) (비공개 키 (1515b) 및 대칭 키 (1525b)). DRM 엔진은 이러한 키 (1570) 를 교대로 사용하여 링크 (1530b) 내의 ContentKey 오브젝트 (1555b) 의 암호를 해독하며 (공개 키 (1505b) 를 통한 공개 바인딩이 사용된 경우 공개 도출용 공개 키 (1515b) 사용 또는 대칭 키 (1525b) 를 통한 대칭 바인딩이 사용된 경우 대칭 도출용 대칭 키 (1525b) 사용), 결과는 키 체인 (1550) 의 마지막 링크 (1580) 이다 (예: 노드 (1500c) 의 기밀 키) (비공개 키 1515c 및 대칭 키 (1525c)).
일 실시예에서 DRM 엔진은 임의의 순서로 링크를 처리할 수 있으므로 링크가 처리될 때 키 도출을 수행할 수 없는 경우도 있다 (예를 들어, 해당 링크의 "발신 (from)" 노드의 키가 아직 도출되지 않은 경우). 이 경우에 해당 정보를 다시 사용할 수 있게 되면 링크가 기억되어 다시 처리된다 (예: 해당 노드가 "수신 (to)" 노드인 위치에서 링크가 처리되는 경우).
3.11. DRM 인증서
위에서 언급한 것처럼 일 실시예에서 인증서는 해당 키를 사용하여 생성된 디지털 서명을 기반으로 결정을 내리기 전에 암호 키와 연관된 증명서를 검사하는 데 사용된다. 일 실시예에서 유효 기간, 이름 등과 같이 일반적으로 인증서의 표준 요소로 사용되는 기존 정보를 활용하여 다중 인증서 기술을 지원할 수 있다. 이러한 표준 요소 이외에도 인증 키의 잠재적인 사용을 제한하도록 추가 제약조건을 인코딩할 수 있다.
일 실시예에서 키 사용 확장을 인증서 인코딩 프로세스의 일부로 사용하여 이러한 작업을 수행한다. 이러한 확장에 인코딩된 정보는 DRM 엔진이 특정 오브젝트에 서명된 키가 해당 목적에 사용하도록 인가되었는지 여부를 판별하는 데 사용할 수 있다. 예를 들어, 일부 키는 발신 (from) 이 특정 속성을 가진 노드이고 수신 (to) 이 다른 특정 속성을 가진 노드인 링크 오브젝트에만 서명할 수 있는 인증서를 가질 수 있다.
일반적으로 인증서를 표현하는 데 사용되는 기본 기술은 시맨틱이 이러한 링크와 노드를 인식하지 못하기 때문에 이러한 제약조건을 표현할 수 없다. 따 라서 일 실시예에서 이러한 특정 제약조건은 기본 인증서의 키 사용 확장으로 전달되며 "사용 범주 (usage category)" 및 해당 "제약조건 프로그램 (constraint program)"이 포함된다.
사용 범주는 키에서 서명하도록 인가된 오브젝트 유형을 지정한다. 제약조건 프로그램은 컨텍스트에 따라 다이내믹한 조건을 표현할 수 있다. 일 실시예에서 키 사용 확장 표현의 평가가 DRM 엔진으로 위임되지만 이러한 인증서의 유효성을 확인하도록 요청 받는 검증자 (verifier) 는 관련 시맨틱을 이해할 필요가 있다. 인증서는 해당 프로그램의 실행이 성공적인 결과를 생성하는 경우에만 유효한 것으로 간주된다.
일 실시예에서 제약조건 프로그램의 역할은 Boolean 값을 반환하는 것이다. 예를 들어, "true" 는 제약조건을 충족함을 나타내고 "false" 는 충족하지 않음을 나타낸다. 컨트롤 프로그램도 결정에 도달하는 데 사용할 수 있는 일부 컨텍스트 정보에 대한 액세스 권한을 가질 수 있다. 사용 가능한 컨텍스트 정보는 인증서 검증 요청 시 DRM 엔진의 결정 유형에 따라 다를 수 있다. 예를 들어, 링크 오브젝트의 정보를 사용하기 전에 DRM 엔진은 오브젝트에 서명한 키의 인증서가 해당 키를 해당 목적에 사용하도록 허용하는지 확인할 수 있다. 제약조건 프로그램을 실행할 때 DRM 엔진의 환경에는 링크의 속성과 관련된 정보 및 해당 링크가 참조하는 노드의 속성도 포함된다.
키 사용 확장에 내장된 제약조건 프로그램은 일 실시예에서 코드 모듈로 인코딩된다 (위에서 설명). 이 코드 모듈은 최소한 하나의 엔트리 포인트 (예 :"EngineName.Certificate.<Category>.Check") 에서 엑스포트 되며 여기서 Category 는 검사가 필요한 인증서의 범주를 나타내는 이름이다. 검증 프로그램에 대한 파라미터는 엔트리 포인트를 호출하기 전에 스택으로 푸시 (push) 된다. 스택으로 전달되는 파라미터의 개수와 형식은 평가되는 인증서 확장 범주에 따라 다르다.
4. 시스템 운영
4.1. 기본 노드 상호작용
DRM 애플리케이션의 컨텍스트에서 실시예를 포함하여 NEMO 시스템의 기본 아키텍처 요소의 다양한 실시예를 조사한 결과 NEMO 시스템을 운영하게 되었다 (예: 애플리케이션 특정 기능이 계층화될 수 있는 기반을 구축하는 NEMO 노드 내부 및 노드 간 이벤트 순서).
일 실시예에서 NEMO 노드는 애플리케이션 특정 기능을 실행하기 전에 초기화 및 인가 과정을 거친다. 노드는 먼저 요청, 등록 통보 등을 통해 원하는 서비스를 찾은 다음 해당 서비스를 사용하기 위해 인가를 획득한다 (예: 서비스가 신뢰할 수 있고 관련 서비스 제공자 정책을 충족하도록 설정).
이 프로세스는 도 16 에 도시되어 있으며 서비스 제공자 (1600) 와 서비스 요청자 (1630) (예: 서비스의 클라이언트 소비자) 간의 기본 상호작용 (이 실시예의 경우 서비스 제공 노드 (1610) 와 인가 노드 (1620) 간에 공유되는 기능을 통해) 을 보여준다. 이 상호작용은 직접적일 필요는 없다. 서비스 요청자 (1630) 와 서비스 제공자 (1600) 사이의 경로에 임의 개수의 중개 노드 (1625) 가 배치될 수 있다. 이 프로세스의 기본 단계는 아래 자세히 설명되어 있으며 클라이언트 서비스 요청자 (1630) 와 서비스 제공자 (1600) 모두의 관점에서 논의된다.
서비스 요청자 (1630) 의 관점에서 도 16에 도시된 이벤트의 논리적 흐름은 다음과 같다.
서비스 디스커버리 - 일 실시예에서 서비스 요청자 (1630) 는 서비스 디스커버리 요청을 시작하여 원하는 서비스를 제공하는 NEMO 가능 (enabled) 노드를 찾고 관련 서비스 인터페이스에 대한 액세스를 지원하는 서비스 바인딩과 관련된 정보를 획득한다. 서비스 요청자 (1630) 는 디스커버리된 서비스에 대한 캐시 정보를 선택할 수 있다. NEMO 노드 간에 서비스 디스커버리를 위한 인터페이스/메커니즘은 NEMO 노드에서 구현하고 제시하는 또 다른 서비스에 불과하다는 점을 유의해야 한다. 서비스 디스커버리 프로세스는 아래에서 자세히 설명되며 다른 형태의 통신 (서비스 제공자가 등록된 서비스 요청자에게 통보 등) 을 포함한다.
서비스 바인딩 선택 - 후보 서비스 제공 노드가 발견되면 요청 노드는 특정 서비스 바인딩을 기반으로 하나 이상의 서비스 제공 노드를 대상으로 지정 (요청을 디스패치) 할 수 있다.
수용 가능한 서비스 제공자와의 신뢰받는 관계 협상 - 일 실시예에서 두 노드가 안전하게 통신하려면 이러한 목적을 위해 신뢰 관계를 구축할 수 있어야 한다. 여기에는 ID 를 결정하는 데 사용할 수 있는 무결성 보호 엔벨로프의 호환이 가능한 신뢰 증명서 (예: X. 500 인증서, 토큰 등), 양측이 신뢰하는 인증서를 기반으로 SSL 채널과 같은 보안 채널 구축이 포함될 수 있다. 일부 경우에 이러한 증명서의 교환 및 협상은 서비스 인터페이스 바인딩의 묵시적 속성이 될 수 있다 (예: 인터페이스가 웹 서비스로 노출될 때 WS-I XML 프로토콜이 사용되는 경우 WS-보안 또는 잘 알려진 두 노드 간의 SSL 요청). 어떤 경우에는 신뢰 증명서의 교환 및 협상이 명시적으로 별도의 단계가 될 수 있다. NEMO는 노드가 통신을 위해 신뢰받는 채널을 구축할 수 있도록 유연한 표준 프레임워크를 제공한다. 노드의 특성 및 상호작용과 관련된 서비스의 특성에 따라 어느 증명서가 다른 NEMO 노드와 충분히 상호작용하고 주어진 노드를 신뢰하는지 여부를 결정하는 것은 주어진 노드에 달려있다. 일 실시예에서 NEMO 프레임워크는 특히 보안 관련 데이터 유형 및 프로토콜 영역에서 기존 및 최신 표준을 활용한다. 예를 들어, 일 실시예에서 프레임워크는 서비스 요청자가 서비스를 실행하려고 할 때 서비스 제공자에게 제시하는 두 개의 증명서 (증거) 를 설명하도록 SAML 을 사용하는 것은 물론, 인가 퀘리 및 인가 응답의 표현 방식으로 SAML 을 사용하는 것을 지원한다.
요청 메시지의 생성 - 다음 단계는 요청 노드 (1630) 가 원하는 서비스에 해당하는 적절한 요청 메시지를 생성하는 것이다. 이 작업은 서비스 액세스 포인트에 의해 숨겨질 수 있다. 위에서 언급한 것처럼 서비스 액세스 포인트는 NEMO 프레임워크에서 서비스 제공자와의 상호작용을 위한 추상화와 인터페이스를 제공하고 서비스 메시지 맵핑에 대한 고유 인터페이스, 오브젝트 직렬화/직렬화 해제 (serialization/deserialization) 호환 메시지 형식의 협상, 전송 메커니즘 또는 메시지 라우팅 실행 등과 같은 특정 서비스 호출 문제를 숨길 수 있다.
요청 디스패치 - 요청 메시지가 생성되면 대상 서비스 (제공 노드, 예: 노드 1610) 로 디스패치된다. 요청의 통신 스타일은 서비스 바인딩 및/또는 요청 클라이언트의 환경 설정에 따라 동기/비동기 RPC 스타일이나 메시지 기반 (message oriented) 이 될 수도 있다. 서비스와의 상호작용은 서비스 메시지 전달 및 프로세싱을 통해 직접 수행되거나 더욱 고유한 인터페이스를 통해 (NEMO 서비스 액세스 포인트를 통해) 수행될 수 있다.
응답 메시지 수신 - 요청을 디스패치한 후에 요청 노드 (1610) 는 하나 이상의 응답을 회신으로 수신한다. 서비스 인터페이스 바인딩의 사양 및 요청 노드 (1610) 의 환경 설정에 따라 RPC 스타일 응답 또는 통보 메시지를 포함한 다양한 방식으로 회신이 반환될 수 있다. 위에서 언급한 것처럼 요청 및 회신은 라우팅, 신뢰 협상 (trust negotiation), 대조 (collation) 및 대비 (correlation) 기능을 포함한 다양한 서비스를 자체적으로 제공하는 다른 중개 노드 (1625) 를 통해 대상 노드로 라우팅 될 수 있다. 이 실시예의 모든 서비스는 동일한 일관된 프레임워크 내에서 설명, 발견, 인가, 바인딩, 및 상호작용을 수행하는 "표준" NEMO 서비스이다. 서비스 액세스 포인트는 노드에서 메시지 수준 추상화를 숨길 수 있다. 예를 들어, 노드의 관점에서 서비스 호출은 간단한 고정 파라미터 집합을 사용하는 표준 함수 호출처럼 보일 수 있다.
응답 재협상 신뢰 시맨틱 확인 - 일 실시예에서 요청 노드 (1630) 는 응답 메시지가 요청 노드와 서비스 제공자 노드 (1610) 간에 협상된 신뢰 시맨틱을 준수하는지 확인한다. 이 논리 (logic) 는 일반적으로 서비스 액세스 포인트 내에 서 완전히 캡슐화된다.
메시지 페이로드 프로세싱 - 마지막으로, (애플리케이션별) 메시지 페이로드 유형과 콘텐츠에 따라 적절한 프로세싱이 적용된다. 다음은 서비스 제공업체 (1600) 의 관점에서 이벤트의 논리적 흐름 (다소 비슷함) 이라 할 만한 것을 나타낸 것이다.
서비스 지원 결정 - 우선 요청된 서비스가 지원되는지 여부를 결정하게 된다. 일 실시예에서는, 서비스 인터페이스가 진입점으로써 서비스와 맵핑되는 방법에 대해 NEMO 프레임워크가 특정 스타일이나 세분성 (granularity) 을 요구하지 않는다. 가장 단순한 경우, 서비스 인터페이스는 주어진 서비스와 명백하게 맵핑이 되고, 해당 인터페이스를 바인딩 하고 호출하는 행위는 곧 서비스를 지원하는 것이 된다. 다만, 단일 서비스 인터페이스 다양한 유형의 요청을 처리하거나, 주어진 서비스 유형에 노드가 실제로 원하는 특정 기능성을 지원하는지에 대한 결정을 내리기 전에 샘플링 할 필요가 있는 추가 속성을 포함하고 있는 경우가 될 수도 있다.
서비스 요청자 (Service Requester) 와 허용되는 신뢰 관계를 교섭 - 경우에 따라, 서비스 제공업체 (1600) 가 요청 노드 (1630) 를 신뢰하는지, 그리고 신뢰 받는 통신 채널 (trusted communication channel) 을 설정할지 여부를 결정하는 것이 필요할 수도 있다. 이 프로세스는 앞에서 상세히 설명하고 있다.
서비스 인터페이스로의 액세스를 승인하는 노드에 대한 디스패치 승인 요청 - 서비스 제공 노드 (1610) 는 이제 요청 노드 (1630) 가 서비스 액세스를 승인 받 았는지 아니면 권한이 있는지 여부를 결정하며, 그럴 경우의 조건을 결정한다. 이 결정은 로컬 정보를 근거로 하거나, 원시적 (native) 으로 지원되는 인가 (authorization) 결정 메커니즘을 근거로 내려질 수도 있다. 로컬 지원이 되지 않는 경우, 서비스 제공 노드 (1610) 은 요청 노드 (1610) 이 요청한 서비스에 대한 액세스를 인가 받았는지를 결정하기 위해, 자신의 서비스를 관리하는 알려진 NEMO 인가 서비스 제공업체 (가령, 승인 노드 (1620) ) 으로 인가 요청을 디스패치 할 수도 있다. 많은 상황에서, 승인 노드 (1620) 및 서비스 제공 노드 (1610) 는 동일한 엔터티가 되며, 이 경우 승인 요청의 디스패칭 및 프로세싱은 C 함수 진입점과 같은 경량형 서비스 인터페이스 바인딩을 통해 호출되는 로컬 연산으로 이루어진다. 다시 말하면, 이러한 메커니즘 자체가 NEMO 서비스이기 때문에, 완전 분산형 구현도 가능하다. 승인 요청은 NEMO 노드 자체와 관련된 식별 정보 및/또는 속성을 참조하거나, 노드와 연계된 사용자 및/또는 기기와 연관된 정보를 참조할 수 있다.
인가 응답의 수신에 따른 메시지 프로세싱 - 요청 노드 (1630) 가 승인을 받은 경우, 승인 응답이 수신되는 즉시, 서비스 제공업체 (1600) 는 필요한 프로세싱을 실행하여 요청을 수행한다. 이와 달리, 요청 노드 (1630) 가 승인을 받지 못한 경우, 적절한 "인가 거부" 응답 메시지가 생성될 수 있다.
반환 (Return) 응답 메시지 이제 RPC 형태의 응답이나 통지 메시지를 비롯한 여러 통신 방식을 이용하여, 서비스 인터페이스 바인딩 및 요청 노드 (1630) 의 선호를 근거로 응답이 반환된다. 다시 한번, 위에서 설명한 것처럼, 요청 및 응답은 다른 중계 노드 (1625) 를 통해 타깃 노드로 라우팅 될 수 있다. 중계 노드 (1625) 는 자체적으로 라우팅, 신뢰 교섭, 대조 (collation) 및 상관 기능 등 다수의 서비스를 제공한다. 중계 노드 (1625) 에 의해 제공되는 필수 서비스의 예로는, 요청 노드 (1630) 가 알고 있는 방식으로 메시지를 전달할 수 있는 통지 프로세싱 노드로의 전달을 들 수 있다. 쿠폰 서비스가 요청 노드 (1630) 의 이해관계 (interest) 에 대해 알고 있는 경우, 쿠폰을 응답과 결합시켜주는 쿠폰 서비스가 아마 "부가 가치" 서비스의 예가 될 수도 있을 것이다.
4. 2. 통지
위에서 설명한 것처럼, 비동기 및 동기 RPC 와 유사한 통신 패턴 양쪽에 더해, 클라이언트가 구체적으로 요청을 개시한 다음, 응답을 기다리거나 티켓 회수 (redemption) 를 통해 응답을 정기적으로 점검하는 경우, 일부 NEMO 실시예에서는 통지 개념에 근거한 순수한 메시징 유형의 통신 패턴도 지원한다. 다음과 같은 요소는 한가지 실시예에서 이 같은 통지의 개념을 지원하는 데이터 및 메시지 유형을 구성하게 된다.
통지 - 이해관계가 있는 종단점 노드에서 목표로 삼은 지정된 유형의 페이로드가 들어있는 메시지.
통지 이해관계 - 주어진 노드가 주어진 통지를 수락할지 여부를 결정하는데 사용되는 기준. 통지 이해관계에는 특정 유형의 식별자 (가령, 노드 ID, 사용자 ID 등), 이벤트 (가령, 노드 검색, 서비스 검색 등), 동호인 그룹 (가령, 새로운 재즈 클럽 콘텐츠), 또는 일반적인 범주 (가령, 광고) 에 근거한 이해관계가 포 함될 수도 있다.
통지 페이로드 - 분류된 통지 콘텐츠. 페이로드 유형의 범위에는 단순한 단문 메시지에서부터 더욱 복잡한 객체까지 포함될 수도 있다.
통지 핸들러 서비스 인터페이스 - 통지가 수신될 수 있는 서비스 제공업체의 인터페이스 유형. 서비스 제공업체는 허용되는 페이로드 유형은 물론, 인터페이스와 연관된 통지 이해관계에 대해서도 설명한다. 이러한 인터페이스를 지원하는 노드는 통지의 최종 수신지가 되거나, 중개 (intermediary) 프로세싱 종단점이 될 수도 있다.
통지 프로세서 서비스 - 이해관계가 있는 노드에 통지를 매치 (match) 시켜줄 수 있는 서비스로서, 어떤 일부 정책을 근거로 통지를 전달한다.
통지 발신자 - 이해관계가 있는 일련의 노드 또는 일련의 중개 (intermediary) 통지 프로세싱 노드를 타깃으로 삼아 통지를 보내는 노드.
통지, 통지 이해관계 및 통지 페이로드는 확장성을 갖추는 것이 선호된다. 이외에도, 통지 핸들러 서비스 인터페이스가 다른 NEMO 서비스 인터페이스처럼, 동일한 인가 프로세스를 거치는 것이 바람직하다. 따라서, 해당 통지가 이해관계 및 허용되는 페이로드 면에서 매치가 된다 하더라도, 통신 중개 송출기 또는 발신원과 관계되는 일부 인터페이스 정책에 근거하여, 노드에서 통지의 수락이 거부될 수도 있다.
도 17a 는 통지 핸들러 서비스를 지원하는 노드 (1720) 를 발견 (1715) 하는 일련의 통지 프로세싱 노드 (1710) 를 묘사한 것이다. 서비스 설명의 일환으 로, 노드 (1720) 는 허용되는 통지 페이로드 유형뿐 아니라 통지 이해관계도 명시한다.
도 17b 는 통지가 전달되는 방법을 묘사한 것이다. 모든 노드가 통지의 프로세서는 물론 발신원이 될 수 있으며, 통지 핸들러 서비스를 지원하는 노드 (1720) 에 통지를 전달하는 일을 담당할 수 있다. 따라서, 노드 (1710a) 는 발신 통지 프로세싱 노드일 수도 있고, 또는 해당 기능이 노드 (1710c; 통지의 발신원) 및 노드 (1710b; 통지 프로세서) 로 분리될 수도 있다. 그럼에도 불구하고, 다른 노드 (그림에 나타나 있지 않음) 가 통지의 전달을 담당할 수도 있다. 외부 통지 발신 노드에서 오는 통지를 처리하기로 선택한 통지 프로세서는 효율성 향상을 위해, 마이크로소프트 통지 서비스 (Microsoft Notification Services) 와 같은 상용 통지-프로세싱 엔진과 통합될 수도 있다.
4. 3. 서비스 디스커버리
NEMO 서비스를 사용하려면, NEMO 노드는 우선 자신에 대해 파악할 필요가 있다. 도 18a 내지 18c 에 도시되어 있는 NEMO 실시예에서는 세가지의 다이내믹 디스커버리 메커니즘을 지원한다.
클라이언트 지향적 - 도 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 는 노드 사이에 신임장 (그리고 관련 정보) 이 교환되도록 지원하는데, 신임장 (credentials) 은 신뢰 컨텍스트 설정에도 이용이 가능하다. 이와 같은 신뢰 관련 신임장은 다양한 모델을 통해 교환이 가능하며, 그 예는 다음과 같다.
서비스 바인딩 속성 - 신뢰 신임장이 서비스 인터페이스 바인딩의 일환으로 암묵적으로 교환되는 모델. 예를 들면, 도 19a 의 노드 (1920a) 가 HTTP Post over SSL의 포맷이나, 웹 서비스 보안 (WS-Security) XML 서명을 요구하는 웹 서비스로써 서비스를 노출하는 경우, 이 서비스 바인딩의 실제 속성은 필요한 일체의 신뢰 관련 신임장 (1915a) 을 요청 노드 (1910a) 로 전할 수도 있다.
요청/응답 속성 - 요청 노드 (1910b) 및 서비스 제공 노드 (1920b) 사이에서 옵션에 따라 메시지 (1915b) 속성으로써의 신임장을 비롯하여, 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 노드는 정책결정점 (policy decision point) 의 역할에 참여할 수 있다. 바람직한 실시예에서, NEMO 는 중립적인 정책 관리 시스템이 되며, 인가 노드가 인가 퀘리를 근거로 인가에 대한 결정을 내리는 방법을 요구하지 않는다. 하지만, 상호연동을 위해, 인가 요청 및 응답이 일정한 기준을 고수하고, 페이로드를 유연하게 전송하기 위한 충분한 확장성을 갖춤으로써 다양한 정책 관리 시스템의 컨텍스트에서 여러 유형의 인가 퀘리 요청을 수용할 수 있는 편이 바람직하다. 일 실시예에서는, 최소한 두 가지 인가 포맷에 대한 지원이 이루어진다. 첫째는 (1), 입력, 단순 요청자 ID, 자원 ID 및/또는 액션 ID 와 같은 최소 공통 분모 기준 등을 이용하는 매우 단순한 엔벨로프 (envelope) 를 제공하는 단순한 포맷이고, 두 번째는 (2), 인가 퀘리를 엔벨로프 하기 위한 표준 "SAML (Security Assertion Markup Language)" 포맷이다.
일 실시예에서, 인가 노드는 최소한 사전에 정의된 "단순" 포맷을 인식 및 지원하여야 하며, 이것을 인가 노드에 존재하는 네이티브 정책 식 (policy expression) 포맷을 막론하고 해당 식에 맵핑할 수 있어야 한다. 다른 포맷의 경우, 인가 노드가 "인가" 퀘리 요청의 페이로드를 처리하지 못하거나 이해하지 못하게 되면, 적절한 오류 응답을 반환한다. 확장자에는 각 노드가 인가 퀘리에 허용되는 포맷을 놓고 교섭을 할 수 있는 능력과, 각 노드가 해당 서비스 제공자 노드에서 지원되는 포맷이 무엇인지를 결정하기 위해 퀘리를 수행할 수 있는 능력이 포함될 수도 있다.
4. 6. DRM 노드의 기초 상호작용
DRM 애플리케이션의 특정 NEMO 인스턴스로 되돌아가면, 도 21 은 DRM 노드 (또는 버텍스 (Vertex)) 그래프인데, 이 그래프는 DRM 노드 사이의 상호작용뿐 아니라 각자의 관계를 도시해 주는 역할을 한다. 휴대 기기 (portable device; 2110) 가 콘텐츠 재생 기기 (가령, iPodl) 가 되는 시나리오를 가정해 보자. Nip l은 이 기기를 나타내는 노드이다. Kipl 은 Nipl 과 연관된 콘텐츠 암호화 키이다. "사용자" 는 휴대 기기의 소유자이며, Ng 는 사용자를 나타내는 노드이다. Kg 는 Ng 와 연관된 콘텐츠 암호화 키이다.
PubLib 는 공용 라이브러리이다. Npl 은 이 라이브러리의 회원을 나타내고, Kpl 은 Npl 과 연관된 콘텐츠 암호화 키이다. ACME 는 ACME 사에서 제조한 모든 음악 플레이어 (Music Player) 를 나타낸다. Namp 는 기기의 클래스를 나타내고, Kamp 는 이 집단과 연관된 콘텐츠 암호화 키이다.
Ll 은 Nipl 에서부터 Ng 까지의 링크이며, 이는 휴대 기기가 사용자 (그리고 사용자의 키에 액세스가 가능한 사용자) 에 속한다는 것을 가리킨다. L2 는 Ng 에서부터 Npl 까지의 링크이며, 이는 사용자가 공용 라이브러리의 구성원이고 라이브러리 키에 대한 액세스가 가능함을 의미한다. L3 는 Nipl 에서부터 Namp 까지의 링크이며, 휴대 기기가 ACME 기기 (이 회사는 키를 보유하지 않기 때문에 단순한 멤버쉽만 있음) 임을 의미한다. L4 는 Npl 에서부터 Napl 까지의 링크이며, Napl 은 모든 공용 라이브러리를 나타내는 노드이고 그룹 전체 키에 대한 액세스가 가능하다.
C1 은 공용 라이브러리의 구성원이 이용할 수 있는 영화 파일이다. Kcl 은 C1 을 암호화하는 데 사용되는 키이다. GB[C1] (그림에는 나타나 있지 않음) 는 Cl에 대한 통제 (governance) 정보 (가령, 콘텐츠에 대한 액세스 관리에 이용되는 규칙 및 관련 정보) 이다. E(a, b) 는 'b' 가 키 'a' 로 암호화되었음을 의미한다.
예시 목적상, 기기가 라이브러리의 구성원인 자에게 속하고 (a), 기기가 ACME 에서 제작된 것 (b) 인 한, 기기에서 콘텐츠 Cl 을 재생할 수 있는 규칙을 정하고자 한다고 가정해 본다.
콘텐츠 C1 은 Kcl 을 이용하여 암호화된다. 규칙 프로그램뿐 아니라 암호화된 콘텐츠 키 RK[C1] = E(Kamp, E(Kpl, Kcl)) 도 생성된다. 규칙 프로그램 및 RK[C1] 모두 콘텐츠 GB[C1] 을 위한 통제 블록 (governance block) 에 포함될 수 있다.
휴대 기기는 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 을 복호화 (decrypt) 하여 재생한다.
상기 예시에서처럼 노드 키가 대칭 키인 경우, 콘텐츠 패키저 (content packager) 는 콘텐츠를 "바인딩" 하고자 하는 노드의 키에 액세스할 필요가 있다. 이를 위해서는, 패키저를 나타내는 노드를 생성하고, 이 노드와 규칙을 바인딩하고자 하는 노드 사이에 링크를 생성한다. 또한, 예컨대 서비스를 통해 "대역외 (out of band)" 가 되는 것도 한 방법이다. 하지만, 상황에 따라 대칭 키의 사용이 가능하지 않거나 실용적이지 못할 수도 있다. 이러한 경우에는, 지식이 공유되지 않은 상태에서 바인딩을 할 필요가 있는 노드에 하나의 키 쌍 (key pair) 을 할당하는 것도 가능하다. 이때, 패키저는 콘텐츠 키를 타깃 노드의 공개 키와 암호화시켜, 콘텐츠 키를 노드에 바인딩한다. 복호화용 키를 입수하기 위해, 클라이언트는 해당 노드와의 링크를 통해 노드의 비공개 키로 액세스를 할 수도 있다.
가장 일반적인 경우에, 규칙에 사용되는 노드 및 콘텐츠 암호화 키 계산에 사용되는 노드가 동일할 필요는 없다. 콘텐츠를 통제하는 규칙과 콘텐츠를 암호화하는 데 이용되는 키 사이에는 강력한 관계가 존재하기 때문에 동일한 노드가 사용되는 것이 자연스러우나, 필수적인 것은 아니다. 시스템에 따라, 일부 노드는 멤버쉽 조건을 표현하는데 사용되지 않는 콘텐츠 보호 키로 사용될 수도 있으며, 그 반대가 될 수도 있고, 경우에 따라서는 2 개의 서로 다른 노드 그래프가 각각 규칙 및 콘텐츠 보호용으로 사용될 수도 있다. 예컨대, 그룹 Npl 의 모든 구성원은 콘텐츠 Cl 에 액세스를 할 수 있지만, 콘텐츠 키 Kcl 은 Kpl 에 의해 보호되는 것이 아니라, 그 대신 노드 Napl 의 노드 키 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) 에는 보내기 (export) 엔트리 목록이 들어있다. 각각의 보내기 엔트리는 8 비트 이름 크기로 인코딩된 이름, 거기에 이어지는 종단 (terminating) 0 을 비롯한 이름의 문자 (characters), 그 다음으로 지정된 진입점 (entry point) 의 바이트 오프셋을 나타내는 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 명령어 (instruction) 의 사용을 통해 이루어지며, 이때 호출에서 시스템 호출 번호를 명시하는 정수 스택 피연산자 (operand) 를 취하게 된다. 시스템 호출에 따라, VM 의 원시 (native) 구현 포맷에서 VM 에 의해 직접적으로, 아니면 VM 의 호스트 환경과 같은 외부 소프트웨어 모듈에 위임하여, 다른 코드 모듈에서 컨트롤 VM 바이트 코드 루틴이 구현될 수 있다.
일 실시예에서는, 몇 개의 시스템 호출 번호가 명시된다.
SYS_NOP = 0 : 이것은 비 연산 호출이다. 그냥 반환만 한다 (다른 액션은 하지 않음). 주로 VM 의 시험을 목적으로 사용된다.
SYS_DEBUG_PRINT = 1 : 디버그 출력에 텍스트 스트링을 인쇄한다. 이 호출에서는 인쇄할 널로 종료하는 (null-terminated) 스트링을 포함한 메모리 위치의 주소를 명시하는 단일 스택 인수 (argument) 가 예상된다.
SYS_FIND_SYSCALL_BY NAME = 2 : VM 이 지정된 시스템 호출을 구현할지 여부를 결정한다. 구현하는 경우에는, 시스템 호출 번호가 스택에 반환된다. 그렇지 않은 경우, 값 -1 이 반환된다. 이 호출에서는 요청되고 있는 널로 종료하는 시스템 콜 이름을 포함한 메모리 위치의 주소를 명시하는 단일 스택 인수 (argument) 가 예상된다.
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 (클라이언트 소모) 엔진에 의해 제공되는 호스트 애플리케이션과의 인터페이스 유형에 대한 일부 전형적인 개략 설명 (high level description) 이다.
SystemName::CreateSession (hostContextObject) → Session
호스트 애플리케이션 컨텍스트가 주어진 세션을 생성한다. 컨텍스트 오브젝트는 DRM 엔진에 의해 사용되어 애플리케이션으로 콜백을 하게 된다.
Session::ProcessObject (drmObject)
이 함수는 호스트 애플리케이션이 DRM 하위시스템에 속한 것으로 확인될 수 있는 미디에 파일에서 특정 유형의 오브젝트와 마주치게 되는 경우, 호스트 애플리케이션에 의해 호출되어야 한다. 이러한 오브젝트에는 콘텐츠 컨트롤 프로그램, 멤버쉽 토큰 등이 포함된다. 이러한 오브젝트의 신택스 (syntax) 와 시맨틱은 호스트 애플리케이션에게는 불투명 (opaque) 하다.
Session::OpenContent (contentReference) → Content
호스트 애플리케이션은 멀티미디어 콘텐츠 파일과 상호작용이 필요한 경우 이 함수를 호출한다. DRM 엔진은 뒤이어 콘텐츠에 대한 DRM 정보를 검색하고 이 정보와 상호작용하는데 사용될 수 있는 콘텐츠 오브젝트를 반환한다.
Content::GetDrmInfo()
파일의 일반적인 메타데이터에서는 가용하지 않은 콘텐츠에 대한 DRM 메타데이터를 반환한다.
Content::CreateAction (actionInfo) → Action
호스트 애플리케이션은 콘텐츠 오브젝트와의 상호작용을 원할 때 이 함수를 호출한다. actionInfo 파라미터는 애플리케이션에서 실행되어야 할 액션 유형 (예컨대, 재생) 은 물론, 필요한 경우 관련 파라미터를 명시한다. 이어서, 이 함수는 액션을 실행하고, 콘텐츠 키를 검색하는 데 이용될 수 있는 액션 오브젝트를 반환한다.
Action::GetKeyInfo()
복호화 (decryption) 하위시스템이 콘텐츠를 복호화하는 데 필요한 정보를 반환한다.
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 하위시스템이 일부 데이터에 대한 보안 해시 (hash) 계산을 위해 사용할 수 있는 Digester 오브젝트를 생성한다. 최소 다이제스트 (digest) 형식 집합을 정의한다.
Digester::Update (data)
위에서 설명한 보안 해시 (hash) 계산에 사용되는 Digester 오브젝트.
Digester::GetDigest()
위에서 설명한 DRM 하위시스템이 계산한 보안 해시 (hash) 획득에 사용되는 Digester 오브젝트.
아래에서는 DRM (서비스측 패키지) 엔진이 호스트 애플리케이션에 제공하는 인터페이스 형식에 대한 상위 레벨의 설명을 제공한다.
SystemName::CreateSession (hostContextObject) -> Session
호스트 애플리케이션 컨텍스트를 제공하는 세션을 생성한다. 이 Context 오브젝트는 애플리케이션으로의 응답을 생성하기 위하여 DRM 패키지 엔진에 의해 사용된다.
Session::CreateContent (contentReferences[]) -> Content
호스트 애플리케이션은 아래 단계에서 라이센스 오브젝트와 결합하게 될 Content 오브젝트를 생성하기 위하여 이 함수를 호출한다. contentReference 배열 (array) 에 하나 이상의 콘텐츠 참조가 있다는 것은 이들이 하나의 묶음 (bundle) 으로서 (예를 들어, 하나의 오디오와 하나의 비디오 트랙), 라이센스가 이들을 하나의 개별 그룹으로 하여 발급되어야 함을 의미한다.
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 오브젝트를 생성한다. 이 함수는 ContentKey 오브젝트의 콘텐츠 키 데이터 암호화에 사용된다.
Cipher::Encrypt (data)
위에서 설명한 데이터 암호화에 사용되는 Cipher 오브젝트.
Cipher::Decrypt (data)
위에서 설명한 데이터 복호화에 사용되는 Cipher 오브젝트.
HostContext::CreateDigester (digesterType) -> Digester
DRM 패키지 엔진이 일부 데이터에 대한 보안 해시 (hash) 계산을 위해 사용할 수 있는 Digester 오브젝트를 생성한다.
Digester::Update (data)
위에서 설명한 보안 해시 (hash) 계산에 사용되는 Digester 오브젝트.
Digester::GetDigest()
위에서 설명한 DRM 하위시스템이 계산한 보안 해시 (hash) 획득에 사용되는 Digester 오브젝트.
HostContext::GenerateRandomNumber()
키 생성을 위하여 사용할 수 있는 난수 (random number) 를 생성한다.
5. 서비스
5. 1. 개요
NEMO/DRM 시스템에 대한 구조 및 운영 측면에서의 설명에 이어서 이제부터 시스템 기능 구현을 위하여 사용되는 서비스, 데이터 형식 및 관련 오브젝트 ("프로필") 에 대해 설명하기로 한다.
앞서 살펴본 바와 같이 NEMO 구조의 바람직한 실시예에서 서비스 호출과 관련된 요청 및 응답에 대한 신택스 (syntax), 프레임워크 내에서 사용되는 데이터 형식, 메시지 엔벨로핑 (enveloping), NEMO 프레임워크에 의해 노출되고 사용되는 데이터 값 등을 유연하고 간편하게 표현할 수 있는 방법이 사용된다. WSDL 버전 1.1 이상은 다양한 형식의 서비스 인터페이스 및 호출 패턴을 설명 및 표시하는 데 있어서 충분한 유연성을 제공하며, 다양한 통신 프로토콜을 통하여 각기 다른 엔드포인트 노드들의 바인딩을 수용하기 위한 충분한 추상화 기능을 가지고 있다.
일 실시예에서는 우리는 프로필을 WSDL (위즈돌) 에 정의된, 주제에 있어서 서로 연관된 일련의 데이터 형식 및 인터페이스로 정의한다. NEMO 는 (기본적인 NEMO 노드 상호작용 패턴 및 기본 기능을 지원하기 위하여 필요한 기본적인 데이터 형식 및 서비스 메시지 집합을 포함하는) "코어" 프로필과 (NEMO 를 이용하여 구현될 수 있는 DRM 서비스를 설명하는) DRM 프로필과 같은 애플리케이션별 프로필을 구분하며, 이 두 가지 프로필은 아래와 같이 설명된다.
이들 프로필에서 정의하는 많은 데이터 형식 및 서비스들은 추상적인 것이며, 사용 전에 구체화되어야 함을 인지해야 한다. 기타의 프로필들은 이 코어 프로필을 기초로 생성된다.
5. 2. NEMO 프로필 계층
일 실시예에서는 서비스 인터페이스 및 관련 데이터 형식에 대한 정의는 상호 기초 위에 구성되고 확장되는 일련의 필수 및 선택 프로필로 이루어진다. 프로필과 확장 프로필 간의 차이는 상대적으로 미묘 (subtle) 하다. 일반적으 로 확장 프로필은 새로운 데이터 형식이나 서비스 형식에 대한 정의를 추가하지 않는다. 이들은 단순히 기존의 추상적 및 구체적인 형식들을 확장할 뿐이다.
도 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 형식의 생성에 기초가 되는 기본적인 범용 타잎 (generic type) 집합 (아래 설명) 들이 포함된다. 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) - 시스템 내에서 피어 (peer) 를 찾을 수 있는 기능.
서비스 디스커버리 (Service Discovery) - 다른 피어가 제공하는 서비스에 대한 정보를 찾을 수 있는 기능.
인가 (Authorization) - 주어진 피어 (예를 들어 노드) 가 (서비스와 같은) 주어진 리소스에 액세스할 권한이 승인되어 있는지 판단하는 기능.
통지 (Notification) - 지정된 기준에 따라 주어진 일련의 피어 (예를 들어 노드) 에 대하여 대상 메시지를 전달하는 것과 관련된 서비스.
다음은 본 프로필 계층 내에서의 주요 DRM 요소들에 대한 (위에서도 논의된) 정의이다.
퍼스널라이제이션 (Personalization) - 특정 DRM 시스템과 관련하여 유효한 ID 를 설정하기 위하여 (CE 기기, 음악 플레이어, DRM 센스 서버 등과 같은) DRM 관련 엔드포인트에 필요한 신임장, 정책 및 기타 오브젝트를 획득하는 서비스.
라이센스 획득 (Licensing Acquisition) - 새로운 DRM 라이센스를 획득하는 서비스.
라이센스 번역 (Licensing Translation) - 새로운 DRM 라이센스 포맷을 다른 포맷으로 변환하는 서비스.
멥머쉽 (Membership) - 일부 지정된 도메인 내에서 멤버쉽을 설정하는 다양한 오브젝트를 획득하는 서비스.
일 실시예에서는 NEMO/DRM 프로필 계층은 일련의 일반 인터페이스 규격 (추상적인 서비스 집합, 통신 패턴 및 운영을 설명), 형식 규격 (NEMO 프로필에서 정의한 데이터 형식을 포함), 구체적인 규격 (특정 프로토콜에 대한 바인딩을 포함하여 추상적인 서비스 인터페이스의 구체적 형태로의 맵핑) 등으로 설명된다. 이 러한 규격의 일 실시예는 서비스 정의 및 프로필 스키마의 형태로 본 문서의 부록 C 에 규정되어 있다.
6. 추가적인 애플리케이션 시나리오
도 24 는 DRM 보호 음악을 재생하기 위하여 새로운 음악 플레이어를 사용하는 소비자와 관련하여 NEMO 의 구현에 대한 비교적 간단한 예를 도시하고 있다. 그러나 아래에 도시된 바와 같이 이렇게 단순한 예에 있어서도 매우 많은 관련 애플리케이션 시나리오가 그려질 수 있다. 이 예는 디스커버리 서비스를 사용하는 보편적인 플러그앤플레이 (UPnP) 기반의 서비스 디스커버리를 UDDI 기반의 디스커버리 서비스를 찾고 링크하기 위하여 사용하는 경우를 도시한다. 이 예는 또한 개인통신망 (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 가능 (enabled) 하고 인터넷에 연결되어 있으며 블루투스 및 NEMO SAP (2430) 이 장착된 홈 게이트웨이 기기 (2420) 가 설치된 사용자 가정에서 개인 통신망 (PAN) (2410) 에 포함될 수 있다. 플레이어 (2400) 및 게이트웨이 (2420) 의 UPnP 스택은 아래 논의된 "NEMO 지원 게이트웨이" 에 대한 새로운 서비스 프로필 형식의 지원을 위하여 확장되어 있다.
사용자가 음악을 다운로드하여 재생을 시도하는 경우, 플레이어 (2400) 는 퍼스널라이제이션이 필요한지 결정한 다음 해당 절차를 시작한다. 예를 들어, 플레이어 (2400) 는 PAN (2410) 상의 NEMO 게이트웨이에 대한 UPnP 서비스 요청을 시작할 수도 있다. 플레이어가 NEMO 게이트웨이 서비스의 위치를 지정하면 게이트웨이 (2420) 는 플레이어 (2400) 가 해당 서비스에 연결되도록 필요한 정보를 반환한다.
이후 플레이어 (2400) 는 NEMO 퍼스널라이제이션 요청 메시지를 생성하여 게이트웨이 서비스로 보낸다. 이 요청에는 플레이어 (2400) 의 장치 ID 와 관련된 X.509 인증서가 포함된다. 해당 요청을 수신한 게이트웨이 (2420) 는 이 요청을 로컬에서는 충족시킬 수 없으나 다른 가능한 서비스 사업자를 찾을 수 있다. 그러나 게이트웨이 (2420) 는 모든 수신 메시지에 디지털 서명이 있어야 한다는 원칙이 있고, 따라서 해당 요청을 거부한 다음, 이러한 형태의 요청 처리와 관련된 원칙을 명시한 승인 실패 메시지를 반환한다.
이 거부 메시지를 수신한 플레이어 (2400) 가 서비스 거부의 이유를 확인한 다음, 디지털 서명을 하고 (예를 들어 도 15 와 관련하여 위에서 논의한 대로), 이 요청을 다시 게이트웨이 (2420) 로 제출하면 게이트웨이 (2400) 는 이 메시지를 접수한다. 앞서 언급한 대로 게이트웨이 (2420) 는 이 요청을 지역적으로 만족시킬 수는 없으나 서비스 디스커버리를 수행할 수는 있다. 게이트웨이 (2420) 는 SAP (2430) 구현이 지원하는 특정한 디스커버리 프로토콜을 인지하고 있지 않으며, 따라서 원하는 서비스 (퍼스널라이제이션) 에 기초하여 일반적인 속성 기반의 서비스 발견 요청을 작성하여 이를 SAP (2430) 을 통해 발송한다.
인터넷 기반의 UDDI 레지스트리 (2440) 등과 같은 UDDI 레지스트리와의 통신에 필요한 정보 등을 가진 SAP (2430) 은 이 요청을 원시 (native) UDDI 질의에 적합한 형식으로 변환하여 전송한다. UDDI 레지스트리 (2440) 는 DRM 퍼스널라이제이션을 지원하는 서비스 사업자를 알고 있으므로 질의의 결과를 반환한다. SAP (2430) 은 이러한 결과를 수신한 다음, 필요한 서비스 사업자 정보와 함께 올바른 포맷으로 적합한 응답을 게이트웨이 (2420) 로 반환한다.
게이트웨이 (2420) 는 서비스 발견 응답에서 서비스 사업자 정보를 추출하여 플레이어 (2400) 를 대신하여 최초 요청을 기반으로 퍼스널라이제이션에 대한 새로운 요청을 생성한다. 이 요청은 SAP (2430) 로 전달된다. 서비스 사업자 정보는 (특히 퍼스널라이제이션 서비스 (2450) 의 서비스 인터페이스에 대한 설명은) SAP (2430) 이 어떻게 WSDL에 설명된 웹 서비스를 통하여 서비스를 보여주는 퍼스널라이제이션 서비스와 통신해야 하는지를 보여준다. SAP (2430) 은 이 요청사항을 준수하여 퍼스널라이제이션 서비스 (2450) 를 호출하고 응답을 받는다.
이후 게이트웨이 (2420) 가 이러한 응답을 플레이어 (2400) 로 반환하면 플레이어는 이 응답의 페이로드를 사용하여 DRM 엔진을 퍼스널라이제이션 할 수 있다. 이 시점에서 플레이어 (2400) 의 기능이 준비되어 다양한 로컬 및 글로벌 고객 서비스에 참여할 수 있게 된다. 이 서비스들은 다양한 로컬 및 원격지 콘텐츠 서비스, 룩업 (lookup), 매칭 (matching) 및 라이센스 서비스, 기타 자동 프 로비져닝 (provisioning) 서비스에 가시화 및 엑세스를 제공하여 소비자 서비스 이용을 돕는다. 위에서 설명한 바와 같이 콘텐츠 사업자가 부과한 모든 정책을 사용자와 플레이어 (2400) 가 준수할 것을 전제로, 일부 보호 콘텐츠에 대한 접근을 위하여 다양한 복호화 키가 필요하다.
따라서 가정에서 개인 미디어 플레이어를 사용하는 사용자는 간편한 CE 기기를 이용할 수 있으며, 이때 게이트웨이 및 피어 기기에서 제공하는 서비스를 이용해야 한다. 사용자가 다른 장소에 있는 경우, 기기는 가정에서 사용자가 사용할 수 있는 서비스의 대부분 또는 모두를 다시 찾아서 새로운 게이트웨이 서비스를 통하여 홈 네트워크에 논리적으로 접속할 수 있으며, 이때 사용자는 이러한 서비스들에 대한 여러 정책들에 따라 허용된 서비스들을 새로운 장소에서도 이용할 수 있다.
이러한 동일한 구성 (NEMO 노드, SAP, 서비스 적응계층, XML, WSDL, SOAP, UDDI 등의 다양한 표준) 의 일부 또는 전체를 사용함으로써, 예를 들어 이러한 DRM 음악 플레이어의 영역 내에서도 여러 가지 다른 시나리오들이 가능하다. 예를 들어, 플레이어 (2400) 에 자체 SAP를 내장함으로써 게이트웨이 (2420) 가 필요하지 않게 될 수도 있다. UDDI 레지스트리 (2440) 를 음악 콘텐츠의 검색 (locating) 및 라이센스 허여 (licensing) 등 다른 목적으로 사용할 수도 있다. 뿐만 아니라 다양한 유형의 사용자들을 위하여 각기 다른 DRM 애플리케이션이 사용될 수 있다 (예를 들어 여러 종류의 오디오 및 비디오에 대한 복합적인 사용 및 배포를 규정하는 라이센스 방식의 이용 등). 또한 DRM 이외의 영역에서 NEMO 프 레임워크를 이용하여 거의 모든 종류의 서비스 기반의 애플리케이션이 구성될 수 있다.
또 다른 예로 비즈니스 P2P 환경에서 NEMO 를 적용하는 경우를 고려해 볼 수 있다. 비즈니스 애플리케이션의 개발 및 통합을 위한 기술은 대부분의 IT 분야에서 전통적인 툴 및 소프트웨어 개발 주기의 한계를 넘어 빠르게 진화하고 있다. 여기에는 워드 프로세스 문서, 그래픽 프리젠테이션, 스프레드시트 등의 개발이 포함된다. 일부는 이러한 단순한 형태의 문서들이 진정한 애플리케이션을 대표하는 것인지에 대해 반론이 제기될 수도 있으나, 이러한 문서들의 많은 양식들이 잘 정의되어 있으며, 또한 공식적으로 설명된 복잡한 오브젝트임을 고려해야 한다. 이러한 문서들 또는 기타 오브젝트들은 예를 들어 검증 및 업데이트가 가능한 상태 정보, 여러 사용자들이 오브젝트에 대해 동시에 작업을 수행할 수 있도록 하는 기능, 기타 부가적인 임의의 기능 등을 포함할 수 있다. 더 복잡한 시나리오를 적용하면, 문서 기반의 정보 오브젝트들이 프로그램에 입각한 결합을 통해 완전한 기능을 가진 애플리케이션으로서 작용할 수도 있다.
전통적인 소프트웨어의 개발과 마찬가지로 이러한 종류의 오브젝트들은 소스 컨트롤 및 정산 가능성 (accountability) 의 혜택을 볼 수 있다. 오늘날 많은 시스템들이 문서 관리를 지원하고 많은 애플리케이션들이 일부 문서 제어 형식을 직접 지원하고 있다. 그러나 분산 프로세스 환경에 있어서 이들 시스템들의 대부분은 한계를 보이고 있는데, 여기에는 명시적인 체크인/체크아웃 모델을 통한 중앙 집중식 버전 관리, 그리고 특히 특정 애플리케이션 (예를 들어 문서) 내에서 클 라이언트가 렌더링하는 애플리케이션 또는 포맷에 종속된 유연성 없는 (매우 취약한 또는 매우 엄격한) 일관성 정책 (coherence policies) 등이 포함된다.
NEMO 의 바람직한 실시예는 기능 발견 및 포맷 협상에 중점을 두는 P2P 정책 구조의 방식을 이용하여 이러한 한계를 극복할 수 있다. 보다 다양한 방식으로 애플리케이션 (예를 들어 문서) 의 생성을 구성함으로써 보다 다양한 장점을 제공할 수 있다. 오브젝트 및 애플리케이션 구조에 다양한 정책을 적용할 수도 있다. 예를 들어 아래의 일부 또는 전체를 규정하는 정책도 가능하다.
특정한 모듈 만을 수정할 수 있다.
오브젝트 인터페이스 만을 확장 또는 구현 변경할 수 있다.
삭제는 허용되나 확장은 불가하다.
충돌이 발생하지 않는 업데이트의 자동 머지 (merging) 방법, 또는 주어진 피어가 업데이트 내용을 다른 피어에 전송하기 이전에 업데이트를 적용하는 방법 등 업데이트의 적용 방식.
모든 피어들이 업데이트를 통지 받고 가장 적절한 메커니즘을 통해 직접 동기화 (synchronization) 할 수 있도록 하는 정책 기반의 통지.
클라이언트의 능력에 따라 각기 다른 종류의 클라이언트로부터의 업데이트 지원.
이 기능을 구현하기 위하여 각 참여 요소들이 사용하는 오서링 (authoring) 애플리케이션은 NEMO 지원 피어가 될 수 있다. 생성된 문서에 대하여 (문서의 정상적인 형식화 (formatting) 규칙 이외에도) 문서의 각 부분에 대하여 수행할 수 있는 작업 및 승인된 사람 등을 포함하여 정책을 설명하는 템플릿 (template) 이 사용될 수 있다. NEMO 피어가 사용하는 정책 엔진이 그 의미에 부합하는 정책 규칙을 해석 및 적용하고, 또한 문서의 생성에 있어서 허용된 피어 인터페이스가 지원하는 작업이 서비스 적응계층을 통해 주어진 피어의 환경에 맵핑되는 한, 어떠한 피어도 참여가 가능하지만 내부적으로는 각기 다른 방식으로 문서를 표시한다.
프리젠테이션 문서에 대한 공동 작업을 위하여 각기 다른 NEMO 피어들로 구성된 시스템이 NEMO 프레임워크를 기반으로 구성된 서비스를 이용하는 경우를 고려해 보자. 이 경우에 무선 PDA 애플리케이션은 텍스트 문서를 프로세스 및 렌더링하기 위하여 자바로 작성된 애플리케이션을 가동한다. 데스크탑 워크스테이션 MS 윈도우즈에서 작동하는 다른 애플리케이션이 MS 워드 포맷을 이용하여 동일한 문서를 프로세스 한다. PDA 와 워크스테이션은 예를 들어 LAN 을 통해 통신할 수 있으며, 따라서 PDA 사용자와 워크스테이션 사용자는 동일한 문서 애플리케이션에 대해 공동 작업을 수행할 수 있다. 이 예에서 아래의 사항들이 적용된다.
공동 작업에 참여하는 NEMO 피어들은 상대방과 상대방의 현재 상태, 능력 등을 확인할 수 있다.
각 NEMO 피어는 각자가 수행한 변경에 대하여 ID, 변경 사항, 연산자 (예를 들어 삭제, 확장 등) 를 제출한다.
모든 변경 사항은 각 NEMO 피어로 전달된다. 이것은 통지가 이루어지면 각 NEMO 가 상대 피어의 프로필과 능력을 발견할 수 있기 때문에 가능하다. 그 렇지 못한 경우, 이 시점에서는 통지를 수행한 피어는 통지를 받은 피어가 수용할 수 있는 형식으로 콘텐츠 변경을 암호화할 수 있다. 통지를 받은 피어가 인터페이스 시점에 변경 통지 수신과 함께 이를 볼 수 있는 포맷으로 이를 표시할 수도 있다.
변경 내용을 접수하기 전에 피어는 이 통지가 승인된 NEMO 참가자로부터 수신된 것인지 확인한다.
변경 내용은 문서 정책을 기반으로 적용된다.
또 다른 예로 NEMO 지원 노드 (X) 로서 DRM 포맷 A 를 지원하지만 DRM 포맷 B 의 콘텐츠를 재생하고자 하는 휴대용 무선 가전제품 (CE) 의 경우를 고려해보자. X 는 콘텐츠의 특성 (예를 들어, ID, 지원 OS, 재생성 프로필, 지원 페이먼트 방법 등) 에 대한 설명뿐 아니라 콘텐츠 렌더링 하려는 의사를 전달하고 가능한 솔루션을 제공하는 다른 NEMO 피어로부터의 응답을 기다린다. 퀘리에 대한 응답에서 X 는 세 가지 응답을 수신한다.
(1) 피어 1 은 $2.00 의 요금으로 다운로딩이 가능한 낮은 품질의 콘텐츠를 MP3 형식으로 제공한다.
(2) 피어 2 는 재생 횟수 당 $0.50 의 요율로 안전한 채널을 통해 높은 품질의 콘텐츠 스트리밍을 제공한다.
(3) 피어 3 은 $10.00 의 요금으로 DRM 포맷 B 의 콘텐츠 렌더링을 허용하는 소프트웨어 업데이트 를 X 에 제공한다. MP3 형식의 콘텐츠에 대해 낮은 품질의 다운로딩을 제공한다.
선택 안들을 검토 한후 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 프레임워크를 이용하여 아래와 같은 작업이 수행되어야 한다.
X 는 무선 서비스 공급자 (B) 로부터 업데이트를 수신할 수 있는 권한을 획득한다.
무선 서비스 공급자 B 는 ID 설정을 위하여 피어 3 의 인증서를 직접 검증한다.
X 는 B 로부터 제 3 자 업데이트를 허용하는 필수 업데이트를 다운로드 하며, 이것을 제한하는 정책은 없지만, 이 시나리오는 이 작업을 개시하는 최초 개시 이벤트이다.
X 는 피어 3 이 제공하는 업데이트에 대한 요금을 청구 받는다.
X 는 피어 3 으로부터 업데이트를 다운로딩 한다.
이 비즈니스 프로세스의 일부 작업은 WFC 요소들에 의해 동시에 수행될 수 있으며, 일부 작업은 특정 절차에 따라 승인 및 수행되어야 한다.
NEMO 프레임워크 적용의 또 다른 예로 온라인 게임이 있을 수 있다. 많은 인기 있는 멀티 플레이어 게임 환경 네트워크들은 온라인 게이머들이 게임 세션을 생성하고 참여할 수 있도록 하는 중앙 집중화된 폐쇄형 포털로 구성되어 있다.
이 환경의 제약 중 하나는 사용자들이 일반적으로 게임 네트워크와 밀접하게 연결되어 있어야 하며, 서비스 이용을 위한 계정 (대개 특정 게임 타이틀에 연계된 계정) 을 가지고 있어야 한다. 일반적으로 게이머는 멀티 플레이어 게임을 구성하고 네트워크 내에 참여하기 위하여 다수의 게임 네트워크에 걸쳐 다수의 타이틀에 여러 개의 게임 계정을 관리하고 게임 사업자 클라이언트 애플리케이션과 연동해야 한다. 이러한 작업은 불편하고 온라인 사용율을 떨어뜨린다.
NEMO 프레임워크의 실시예는 보다 페더레이티드 (federated) 되면서도 분산화된 게임을 지원하는 환경을 조성함으로써 온라인 게임을 촉진하고 특정 온라인 게임 네트워크의 세부 사항을 사용자 및 서비스 사업자에게 투명하게 보여준다. 이는 사용자의 흥미를 높이고 서비스 선택 및 사용율을 증가시킬 뿐 아니라 게임 네트워크 사업자의 행정적 부담을 줄여준다.
이러한 혜택을 얻기 위해서 게임 클라이언트는 NEMO 피어로서 참여하기 위하여 NEMO 모듈에 퍼스널라이제이션을 할 수 있다. 뿐만 아니라 게임 네트워크는 표준 방식을 통하여 관리를 위한 인터페이스를 표시하기 위하여 NEMO 모듈에 퍼스널라이제이션을 할 수 있다. 마지막으로, 승인된 피어들이 정해진 방식으로 연 동하기 위하여 NEMO 의 신뢰 관리가 사용될 수 있다.
예를 들어, 세 개의 게임 네트워크 사업자 (A,B,C) 와 두 개의 사용자 (X,Y) 가 있다고 가정하자. 사용자 X 는 A 에 계정을 가지고 있고 Y 는 B 에 계정을 가지고 있다. X 와 Y 는 모두 C 에 새로운 타이틀을 획득하여 서로 게임을 하기를 원한다. NEMO 프레임워크를 이용하여 X 의 게임 피어는 자동적으로 온라인 게임 사업자 C 를 발견한다. X 의 계정 정보는 C 가 합법적인 게임 네트워크임을 확인한 후 A 에서 C 로 전송될 수 있다. 이제 X 는 C 에 등록되고 C 와 연동하기 위한 토큰이 제공된다. 사용자 Y 는 B 로부터의 인증서를 이용하여 동일한 절차를 밟아 C 에 대한 액세스 권한을 얻는다. X 와 Y 가 모두 등록되면 서로를 발견하여 게임 세션을 시작하게 된다.
이 단순한 등록 예는 예를 들어 게임 토큰 저장소 (예, 라커 등), 계좌 페이먼트, 스코어 기록 등과 같은 상태 정보 공유를 포함하여 온라인 게임 환경이 제공하는 다른 서비스들로 확대될 수 있다.
위에서 기업 문서 관리, 온라인 게임, 미디어 콘텐츠 소비 등과 관련하여 몇 가지 예가 제시되었으나, 여기에서 설명된 NEMO 프레임워크와 DRM 시스템은 모든 해당되는 경우에 적용될 수 있으며 위에서 제시된 예에만 국한되는 것은 아니다.
Figure 112005070996246-PCT00001
Figure 112005070996246-PCT00002
Figure 112005070996246-PCT00003
Figure 112005070996246-PCT00004
Figure 112005070996246-PCT00005
Figure 112005070996246-PCT00006
Figure 112005070996246-PCT00007
Figure 112005070996246-PCT00008
Figure 112005070996246-PCT00009
Figure 112005070996246-PCT00010
Figure 112005070996246-PCT00011
Figure 112005070996246-PCT00012
Figure 112005070996246-PCT00013
Figure 112005070996246-PCT00014
Figure 112005070996246-PCT00015
Figure 112005070996246-PCT00016
Figure 112005070996246-PCT00017
Figure 112005070996246-PCT00018
Figure 112005070996246-PCT00019
Figure 112005070996246-PCT00020
Figure 112005070996246-PCT00021
Figure 112005070996246-PCT00022
Figure 112005070996246-PCT00023
Figure 112005070996246-PCT00024
Figure 112005070996246-PCT00025
Figure 112005070996246-PCT00026
Figure 112005070996246-PCT00027
Figure 112005070996246-PCT00028
Figure 112005070996246-PCT00029
Figure 112005070996246-PCT00030
Figure 112005070996246-PCT00031
Figure 112005070996246-PCT00032
Figure 112005070996246-PCT00033
Figure 112005070996246-PCT00034
Figure 112005070996246-PCT00035
Figure 112005070996246-PCT00036
Figure 112005070996246-PCT00037
Figure 112005070996246-PCT00038
Figure 112005070996246-PCT00039
Figure 112005070996246-PCT00040
Figure 112005070996246-PCT00041
Figure 112005070996246-PCT00042
이상 상세한 설명을 통해 내용이 비교적 명확하게 제시되었지만 부록에 제시한 청구범위 안에서 변경 및 수정이 가능하다. 본 발명의 프로세스 및 기기를 구현하는 선택 가능한 대안은 많다. 따라서 본 구현은 예시로써 이것에만 국한되는 것은 아니며, 발명의 핵심은 (inventive body of work) 제시된 명세서에 제한되는 것이 아니라 부록에 제시한 청구항 범위 안에서 그에 상당하는 내용으로 수정 가능하다.

Claims (20)

  1. 네트워크 피어가, 배포된 애플리케이션에 참가하여 값 (value) 을 교환할 수 있도록 충분한 상호연동성을 제공하는 서비스 오케스트레이션 시스템으로서,
    a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록 제 1 서비스 인터페이스를 노출시키는 제 1 서비스 적응계층 (adaptation layer) 을 갖는 제 1 서비스 제공자;
    b. 상기 제 1 서비스 제공자에 의해 노출된 상기 제 1 서비스 인터페이스에 액세스하고, 제 1 바인딩을 발견하고, 상기 바인딩을 사용하여 제 1 서비스를 호출하는 제 1 서비스 액세스 포인트를 갖는 제 1 서비스 소비자; 및
    c. 상기 제 1 서비스 제공자가 상기 제 1 서비스 소비자를 위해 상기 제 1 서비스를 수행할 때 필요한 단계를 오케스트레이션하는 제 1 워크플로 콜레이터 (workflow collator) 를 구비하는, 서비스 오케스트레이션 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 서비스는 인터넷 기반 원격 서버에 위치한 암호화된 미디어 콘텐츠에 액세스하는 것을 제한하고,
    상기 제 1 워크플로 콜레이터는, 상기 제 1 서비스 소비자가 콘텐츠 액세스 인가를 받았는지 여부를 확인하여, 인가를 받은 경우, 콘텐츠의 위치를 확인하고, 상기 제 1 서비스 적응계층을 경유하여 상기 콘텐츠를 상기 제 1 서비스 소비자에 게 제공하는 제 1 컨트롤 프로그램을 구비하는, 서비스 오케스트레이션 시스템.
  3. 제 1 항에 있어서,
    상기 제 1 서비스 인터페이스는 WSDL (위즈돌) 에 지정되어 있는, 서비스 오케스트레이션 시스템.
  4. 네트워크 피어가 제공하는 서비스 오케스트레이션 시스템으로서,
    a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록 제 1 서비스 인터페이스를 노출시키는 제 1 서비스 적응계층을 갖는 제 1 서비스 제공자;
    b. 상기 제 1 서비스 제공자에 의해 노출된 상기 제 1 서비스 인터페이스에 액세스하고, 제 1 바인딩을 발견하고, 상기 바인딩을 사용하여 제 1 서비스를 호출하는 제 1 서비스 액세스 포인트를 갖는 제 1 서비스 소비자;
    c. 상기 제 1 서비스 제공자가 상기 제 1 서비스 소비자를 위해 상기 제 1 서비스를 수행할 때 필요한 단계를 오케스트레이션하는 제 1 워크플로 콜레이터; 및
    d. 두번째로 발견한 바인딩을 경유하여, 제 2 서비스 제공자에 의해 제공된 제 2 서비스에 네트워크 피어가 액세스할 수 있도록 제 2 서비스 인터페이스를 노출시키는 제 2 서비스 적응계층을 갖는 제 2 서비스 제공자로서, 상기 제 2 서비스는 상기 제 1 서비스에 대한 위치확인 및 액세스에 관한 정보를 가진 디렉토리 엔 트리 (directory entry) 를 갖춘 서비스 레지스트리에 액세스하는, 상기 제 2 서비스 제공자를 구비하며,
    상기 제 1 서비스 액세스 포인트는 상기 디렉토리 엔트리에 액세스하여 얻은 정보를 활용하여, 상기 제 1 서비스의 위치를 확인하고 서비스를 호출하는, 서비스 오케스트레이션 시스템.
  5. 제 4 항에 있어서,
    상기 서비스 레지스트리는 UDDI 레지스트리인, 서비스 오케스트레이션 시스템.
  6. a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록 제 1 서비스 인터페이스를 노출시키는 제 1 서비스 적응계층을 갖는 제 1 서비스 제공자;
    b. 상기 제 1 서비스 제공자에 의해 노출된 상기 제 1 서비스 인터페이스에 액세스하고, 제 1 바인딩을 발견하고, 상기 바인딩을 사용하여 제 1 서비스를 호출하는 제 1 서비스 액세스 포인트를 갖는 제 1 서비스 소비자; 및
    c. 상기 제 1 서비스 제공자가 상기 제 1 서비스 소비자를 위해 상기 제 1 서비스를 수행할 때 필요한 단계를 오케스트레이션하는 제 1 워크플로 콜레이터;
    d. 상기 제 1 서비스에는 인가된 서비스 소비자만 액세스할 수 있게 인증하는 신뢰관리인증서 (trust management certificate); 및
    e. 상기 신뢰관리인증서를 이용하여 상기 제 1 서비스에 대한 액세스를 제한하는 컨트롤 프로그램을 구비하며,
    상기 제 1 액세스 포인트는 상기 신뢰관리인증서를 이용하여 상기 제 1 서비스 소비자가 상기 제 1 서비스에 대한 액세스를 인가받았는지 여부를 확인하는, 시스템.
  7. 제 6 항에 있어서,
    상기 신뢰관리인증서는 X.509 인증인, 시스템.
  8. 제 6 항에 있어서,
    상기 신뢰관리인증서는 SSL 인증인, 시스템.
  9. 네트워크 피어가, 배포된 애플리케이션에 참가하여 값 (value) 을 교환할 수 있도록 충분한 상호연동성을 제공하는 서비스 오케스트레이션 방법으로서,
    a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록, 상기 제 1 서비스 제공자의 제 1 서비스 적응계층으로부터 제 1 서비스 인터페이스를 노출하는 단계;
    b. 상기 첫번째 바인딩을 발견하고 상기 바인딩을 이용하여 상기 제 1 서비스를 호출하면서, 서비스 소비자의 제 1 서비스 액세스 포인트로부터, 상기 제 1 서비스 제공자에 의해 노출된 상기 제 1 서비스 인터페이스에 액세스하는 단계; 및
    c. 상기 제 1 서비스 제공자가 상기 제 1 서비스 소비자를 위해 상기 제 1 서비스를 수행할 때 필요한 단계를 제 1 워크플로 콜레이터를 이용하여 오케스트레이션하는 단계를 포함하는, 서비스 오케스트레이션 방법.
  10. 제 9 항에 있어서,
    상기 제 1 서비스는 인터넷 기반 원격 서버에 위치한 암호화된 미디어 콘텐츠에 액세스하는 것을 제한하고,
    상기 제 1 워크플로 콜레이터는, 상기 제 1 서비스 소비자가 콘텐츠 액세스 인가를 받았는지 여부를 확인하여, 인가를 받은 경우, 콘텐츠의 위치를 확인하고, 상기 제 1 서비스 적응계층을 경유하여 상기 콘텐츠를 상기 제 1 서비스 소비자에게 제공하는 제 1 컨트롤 프로그램을 포함하는, 서비스 오케스트레이션 방법.
  11. 제 9 항에 있어서,
    상기 제 1 서비스 인터페이스는 WSDL (위즈돌) 에 지정되어 있는, 서비스 오케스트레이션 방법.
  12. a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록, 상기 제 1 서비스 제공자의 제 1 서비스 적응계층으로부터 제 1 서비스 인터페이스를 노출하는 단계;
    b. 상기 첫번째 바인딩을 발견하고 상기 바인딩을 이용하여 상기 제 1 서비 스를 호출하면서, 서비스 소비자의 제 1 서비스 액세스 포인트로부터, 상기 제 1 서비스 제공자에 의해 노출된 상기 제 1 서비스 인터페이스에 액세스하는 단계;
    c. 상기 제 1 서비스 제공자가 제 1 워크플로 콜레이터를 이용하여 상기 제 1 서비스 소비자를 위한 상기 제 1 서비스를 수행하는 단계를 오케스트레이션하는 단계; 및
    d. 두번째로 발견한 바인딩을 경유하여, 제 2 서비스 제공자에 의해 제공된 제 2 서비스에 네트워크 피어가 액세스할 수 있도록, 상기 제 2 서비스 제공자의 제 2 서비스 적응계층으로부터 제 2 서비스 인터페이스를 노출하는 단계로서, 상기 제 2 서비스는 상기 제 1 서비스에 대한 위치확인 및 액세스에 관한 정보를 가진 디렉토리 엔트리 (directory entry) 를 갖춘 서비스 레지스트리에 액세스하는, 상기 제 2 서비스 인터페이스를 노출하는 단계를 포함하며,
    상기 제 1 서비스 액세스 포인트는 상기 디렉토리 엔트리에 액세스하여 얻은 정보를 활용하여, 상기 제 1 서비스의 위치를 확인하고 서비스를 호출하는, 서비스 오케스트레이션 방법.
  13. 제 12 항에 있어서,
    상기 서비스 레지스트리는 UDDI 레지스트리인, 서비스 오케스트레이션 방법.
  14. a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록, 상기 제 1 서비스 제공자의 제 1 서비스 적응계층으로부터 제 1 서비스 인터페이스를 노출하는 단계;
    b. 상기 첫번째 바인딩을 발견하고 상기 바인딩을 이용하여 상기 제 1 서비스를 호출하면서, 서비스 소비자의 제 1 서비스 액세스 포인트로부터, 상기 제 1 서비스 제공자에 의해 노출된 상기 제 1 서비스 인터페이스에 액세스하는 단계; 및
    c. 상기 제 1 서비스 제공자가 상기 제 1 서비스 소비자를 위해 상기 제 1 서비스를 수행할 때 필요한 단계를 제 1 워크플로 콜레이터를 이용하여 오케스트레이션하는 단계;
    d. 신뢰관리인증서를 이용하여, 인가된 서비스 소비자만 액세스할 수 있는 제 1 서비스를 인증하는 단계; 및
    e. 상기 신뢰관리인증서를 이용하여, 상기 제 1 서비스에 대한 액세스를 제한하는 컨트롤 프로그램을 실행하는 단계를 포함하며,
    상기 제 1 액세스 포인트는 상기 신뢰관리인증서를 이용하여 상기 제 1 서비스 소비자가 상기 제 1 서비스에 대한 액세스를 인가받았는지 여부를 확인하는, 방법.
  15. 제 14 항에 있어서,
    상기 신뢰관리인증서는 X.509 인증인, 방법.
  16. 제 14 항에 있어서,
    상기 신뢰관리인증서는 SSL 인증인, 방법.
  17. a. 서비스 소비자의 제 1 서비스 액세스 포인트로부터, 제 1 서비스 제공자에 의해 노출된 제 1 서비스 인터페이스에 액세스하는 단계로서, 상기 제 1 서비스 인터페이스는, 첫번째로 발견한 바인딩을 경유하여 상기 제 1 서비스 제공자에 의해 제공된 상기 제 1 서비스에 네트워크 피어가 액세스할 수 있게 운용되는, 상기 액세스하는 단계;
    b. 상기 첫번째 발견한 바인딩을 발견하는 단계; 및
    c. 상기 바인딩을 이용하여 상기 제 1 서비스를 호출하는 단계를 포함하며,
    상기 제 1 서비스를 수행하는데 필요한 단계는 제 1 워크플로 콜레이터를 이용하여 오케스트레이션되는, 서비스 오케스트레이션 방법.
  18. 제 17 항에 있어서,
    상기 제 1 서비스는 인터넷 기반 원격 서버에 위치한 암호화된 미디어 콘텐츠에 액세스하는 것을 제한하고,
    상기 제 1 워크플로 콜레이터는, 상기 제 1 서비스 소비자가 콘텐츠 액세스 인가를 받았는지 여부를 확인하여, 인가를 받은 경우, 콘텐츠의 위치를 확인하고, 상기 제 1 서비스 적응계층을 경유하여 상기 콘텐츠를 상기 제 1 서비스 소비자에게 제공하는 제 1 컨트롤 프로그램을 포함하는, 서비스 오케스트레이션 방법.
  19. a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록, 상기 제 1 서비스 제공자의 제 1 서비스 적응계층으로부터 제 1 서비스 인터페이스를 노출하는 단계;
    b. 제 1 서비스 소비자의 제 1 서비스 액세스 포인트로부터 상기 제 1 서비스에 대한 요청을 수령하는 단계; 및
    c. 상기 제 1 서비스 제공자가 상기 제 1 서비스 소비자를 위해 상기 제 1 서비스를 수행할 때 필요한 단계를 제 1 워크플로 콜레이터를 이용하여 오케스트레이션하는 단계를 포함하는, 서비스 오케스트레이션 방법.
  20. a. 첫번째로 발견한 바인딩을 경유하여, 제 1 서비스 제공자에 의해 제공된 제 1 서비스에 네트워크 피어가 액세스할 수 있도록, 상기 제 1 서비스 제공자의 제 1 서비스 적응계층으로부터 제 1 서비스 인터페이스를 노출하는 단계;
    b. 제 1 서비스 소비자의 제 1 서비스 액세스 포인트로부터 상기 제 1 서비스에 대한 요청을 수령하는 단계;
    c. 신뢰관리인증서를 이용하여, 인가된 서비스 소비자만 액세스할 수 있는 제 1 서비스를 인증하는 단계;
    d. 상기 신뢰관리인증서를 이용하여, 상기 제 1 서비스에 대한 액세스를 제한하는 컨트롤 프로그램을 실행하는 단계; 및
    e. 상기 제 1 서비스 제공자가 상기 제 1 서비스 소비자를 위해 상기 제 1 서비스를 수행할 때 필요한 단계를 제 1 워크플로 콜레이터를 이용하여 오케스트레이션하는 단계를 포함하는, 방법.
KR1020057023383A 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법 KR101030941B1 (ko)

Applications Claiming Priority (5)

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
PCT/US2004/018120 WO2005017654A2 (en) 2003-06-05 2004-06-07 Interoperable systems and methods for peer-to-peer service orchestration

Related Child Applications (2)

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

Publications (2)

Publication Number Publication Date
KR20060054192A true KR20060054192A (ko) 2006-05-22
KR101030941B1 KR101030941B1 (ko) 2011-04-28

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 (1)

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

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020087010633A KR100965437B1 (ko) 2003-06-05 2004-06-07 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
KR1020107024495A KR101024237B1 (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
KR100733742B1 (ko) * 2006-12-14 2007-06-29 주식회사 아이오셀 휴대용 정보처리 단말기 및 상기 단말기의 통신 시스템
KR101122210B1 (ko) * 2008-01-23 2012-03-20 더 차이니즈 유니버시티 오브 홍콩 행동 시그너처에 기초해서 p2p 애플리케이션을 식별하기 위한 시스템 및 방법
US20150134191A1 (en) * 2013-11-14 2015-05-14 Hyundai Motor Company Inspection device of vehicle driver assistance systems

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
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
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
WO2012093835A2 (ko) * 2011-01-03 2012-07-12 주식회사 케이티 모바일 p2p 서비스를 위한 지연-용인 콘텐츠 전송 장치 및 그 방법
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 情報処理装置及び情報処理プログラム
KR101240552B1 (ko) * 2011-09-26 2013-03-11 삼성에스디에스 주식회사 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
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服务通道实现数据传输的方法
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
EP4009588A3 (en) * 2014-04-23 2022-10-12 Vertigo Media, Inc. Smart routing synchronization system and methods for socializing a synthetic rebroadcast and group stream
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100733742B1 (ko) * 2006-12-14 2007-06-29 주식회사 아이오셀 휴대용 정보처리 단말기 및 상기 단말기의 통신 시스템
KR101122210B1 (ko) * 2008-01-23 2012-03-20 더 차이니즈 유니버시티 오브 홍콩 행동 시그너처에 기초해서 p2p 애플리케이션을 식별하기 위한 시스템 및 방법
US20150134191A1 (en) * 2013-11-14 2015-05-14 Hyundai Motor Company Inspection device of vehicle driver assistance systems
US9545966B2 (en) * 2013-11-14 2017-01-17 Hyundai Motor Company Inspection device of vehicle driver assistance systems

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
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
KR20100136533A (ko) 2010-12-28
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
KR101030941B1 (ko) P2p 서비스 편성을 위한 상호운용 시스템 및 방법

Legal Events

Date Code Title Description
G170 Re-publication after modification of scope of protection [patent]
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140407

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160407

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee