CN1860761B - 用于对等服务编排的可互操作系统和方法 - Google Patents

用于对等服务编排的可互操作系统和方法 Download PDF

Info

Publication number
CN1860761B
CN1860761B CN200480021795.9A CN200480021795A CN1860761B CN 1860761 B CN1860761 B CN 1860761B CN 200480021795 A CN200480021795 A CN 200480021795A CN 1860761 B CN1860761 B CN 1860761B
Authority
CN
China
Prior art keywords
service
node
supplier
user
interface
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN200480021795.9A
Other languages
English (en)
Other versions
CN1860761A (zh
Inventor
W·B·布拉德利
D·P·马赫尔
G·博坎-吉布
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intertrust Technologies Corp
Original Assignee
Intertrust Technologies Corp
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 Intertrust Technologies Corp filed Critical Intertrust Technologies Corp
Priority to CN201110260513.2A priority Critical patent/CN103001923B/zh
Publication of CN1860761A publication Critical patent/CN1860761A/zh
Application granted granted Critical
Publication of CN1860761B publication Critical patent/CN1860761B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Abstract

本说明书描述用于以某种方式执行由策略管理的对等服务编排的系统和方法,采用这种方式,可以支持构建能够带给用户丰富媒体体验的自组织服务网络。在一个实施例中,服务分布在多个对等通信节点上,每个节点都利用消息泵和工作流整理器来提供消息路由和消息编排。服务接口的分布式策略管理有助于提供信任和安全,从而支持商业价值交换。通过对等消息传递和工作流整理,可以从一组异类原语服务动态创建服务。共享资源是一些不同类型的服务,它们使用不同于基于UDDI、SOAP和WSDL的Web服务部署中通常支持的那些服务接口绑定。在一个优选实施例中,提供了一种媒体服务框架,它支持节点在从WAN到PAN的网络层之间相互查找、交互、交换价值和协作。

Description

用于对等服务编排的可互操作系统和方法
相关专利申请
本专利申请要求共同所有的美国临时专利申请第60/476,357号和第60/504,524号的优先权,前者的发明名称为“用于对等服务编排的系统和方法”,申请人为William Bradley和David Maher,于2003年6月5日提交,后者的发明名称为“数字权限管理引擎系统和方法”,申请人为Gilles Boccon-Gibod,于2003年9月15日提交,这两项专利申请均以全文引用的方式在本文中使用;这两个美国临时专利申请构成了当前说明书/详细说明的一部分,并且附加在此分别作为附录A和B。
版权授权
本专利文档的公开部分包含受版权保护的内容。版权所有人并不反对任何人将本专利文档或专利公开部分复制到专利商标局的专利文件或记录中,但保留其他所有版权。
技术背景
诸如Internet之类的网络已经成为传递数字内容和媒体相关服务的主要媒介。标准Web服务协议的出现有望加速这一趋势,使公司能够通过标准化机制可以提供跨多个软件平台进行互操作并支持业务服务和用户之间协作的服务。
但是,要实现建立一个互操作和安全的媒体相关服务环境的目标,还存在许多障碍。例如,多个事实上相互重叠的正式标准实际上会限制直接互操作性,由于其迫使不同的实现在基本标准但是另外不兼容的可选技术方法之间进行选择以便解决相同的基本互操作性或互连问题。在某些情况下,这些不兼容性是由于试图集成不同代的技术引起的问题所造成的,在另外一些情况下,这些问题是由于同时运营但处于不同地点、具有不同需求的各方作出的市场选择的结果。因此,尽管存在标准化,但定位和连接提供所需服务的设备并与之交互经常会 很困难。而且在不同的信任和保护模型之间经常存在不兼容问题。
尽管诸如WSDL(Web服务描述语言)之类的新兴Web服务标准正在着手为面向Internet的系统解决一些此类问题,但这些方法并不完善。它们不能跨个人和局域网、家用、企业和部门网关以及广域网等多个网络层解决此类问题。而且,这些标准也不能通过利用各种服务接口绑定(例如,CORBA、WS-I、Java RMI、DCOM、C函数调用和.Net等等)对简单和复杂服务进行动态编排,完全满足互操作性的需要,从而限制了集成许多传统应用的能力。被广泛部署和采用的对等(P2P)应用与网络的出现,进一步增加了创建可互操作的媒体相关服务的困难,其部分原因在于,没有关于如何体现和执行数字内容使用权的统一概念。
发明内容
这里描述的系统和方法的实施例可用于解决上述部分或全部问题。在一个实施例中,提供了一种服务框架,该框架使得用户或企业媒体空间中的多个参与者(例如,用户、内容提供者、设备制造商、服务提供者)能够通过公开的服务接口以丰富的动态方式相互查找、建立信任关系并交换价值。此框架的实施例一般被称为“媒体编排网络环境(NEMO)”,它可以提供一个平台,来支持异类消费设备、媒体格式、通信协议和安全机制环境下媒体相关的可互操作的安全的电子商务。服务接口的分布式策略管理可用于帮助提供信任和安全,从而帮助实现商业价值交换。
新兴的Web服务标准正在着手为面向Internet的服务解决互操作性问题,而NEMO的实施例可用于解决跨个人和局域网、家用、企业和部门网关以及广域网等多个网络层的互操作性问题。例如,NEMO可以在一个使用移动电话、游戏平台、PDA、PC、基于web的内容服务、发现服务、通知服务和更新服务的互连系统中提供互操作性。NEMO的实施例可进一步用于通过各种本地和远程接口绑定(例如,WS-I[1]、Java RMI、DCOM、C、.Net,等等)来提供对简单和复杂服务的动态对等编排,从而支持传统应用的集成。
在媒体环境中,主要参与者群体(例如内容发布者、分发者、零售商、消费设备提供商和用户)所需要或喜欢的系统和接口常常有很 大的不同。因此,最好是将这些实体所提供的功能统一到能够迅速发展为最佳配置的集成服务中,以满足参与实体的需要。
例如,各种服务发现协议和注册中心(例如蓝牙、UPnP、Rendezvous、JINI、UDDI和LDAP等等)可共存于同一服务中,这样每个节点都能使用对承载该节点的设备最合适的发现服务。而另一服务可能会支持基于IP和无线SMS通知或各种媒体格式(MP4和WMF等等)。
NEMO的实施例利用对等(P2P)服务编排来实现这些目标。现在人们已经看到P2P框架在音乐和视频分发等方面的优势,P2P技术的应用可以更加广泛。
Web服务中的大多数活动都集中于具有相对静态网络配置的机器到机器交互和客户端服务交互。NEMO还能处理以下情况,即一个人携带其个人局域网(PAN)设备靠近LAN或另一个PAN,希望立即重新配置服务访问并在对等基础上连接许多其他服务。
在媒体和各种其他企业服务中,也存在很多应用机会,尤其是两个或多个企业之间的交互。企业大多是按照一定的层次结构进行组织的,其信息系统通常反映了这种组织结构,来自不同企业的人员常常可以通过对等接口更为有效地进行交互。例如,A公司中的收货人员/服务可以通过与B公司的发货人员进行对话来更直接地解决问题或获得有用的信息。交叉层次或不必要的接口一般是没有用的。一些送货公司(例如FedEx和UPS)认识到这一点,因此他们允许客户直接看到其处理,直接对事件进行监视。公司和市政当局通过企业门户来组织其服务,从而形成自然的自助服务。
但是,现有对等框架并不允许一个企业向其用户和提供者公开自己的各种服务接口,让这些实体在自然的对等级别上进行交互,这样这些实体就不能以最适合自己的方式编排该企业的服务。这将要求对那些对等接口的实行某种信任管理机制。利用本发明的优选实施例,不仅允许而且可以促进以P2P方式公开服务接口。
对于诸如DRM(数字权限管理)等特定应用,NEMO的实施例可用于提供面向服务的体系结构,以便解决封闭的同类DRM系统的缺陷与局限性问题。优选实施例可用于为不同的消费设备、媒体格式和安全机制提供媒体相关的可互操作安全商务与操作。
许多传统的DRM系统需要相对复杂的重量级客户端引擎来处理受保护内容,本发明的优选实施例与此不同,它允许客户端DRM引擎相对简单,能够执行由在服务级运行的、功能更强大的策略管理系统设定的管理策略。本发明的优选实施例还可以在媒体格式和加密协议的选择方面提供更大的灵活性,并且可以促进DRM系统之间的互操作性。
可以使用一种简单、开放且灵活的客户端DRM引擎来构建功能强大的、支持DRM的应用。在一个实施例中,DRM引擎被设计为可以很容易地集成到Web服务环境和几乎任何宿主环境或软件体系结构中。
可利用服务编排来克服互操作性障碍。例如,在出现内容查询请求时,可协调各种服务(例如,发现、搜索、匹配、更新、权限交换和通知)来满足请求。使用具有编排功能的优选实施例,用户可以在动态多层网络的任何一点、从任何设备中查看所有家用和基于Internet的内容缓存。可以扩展这一功能以促进流和播放列表的共享,使临时广播与小范围广播易于通过许多不同的设备发现和连接,同时确保权限不受侵犯。NEMO的优选实施例提供了一种端到端的可互操作媒体分发系统,该系统不依赖于单一的一组媒体格式、权限管理和实现协议标准。
在包括内容制作者、分发者、零售商、服务提供者、设备制造商和用户的价值链中,每一环节通常都有许多局部需要。这在权限管理方面尤其如此,在权限管理中,内容制作者可以明确使用权,即对不同的下游价值链元素在各种环境下赋予不同的使用权。用户网关所关注的范围一般要窄得多,最终用户设备关注的范围可能还要窄一些,具体来说就是仅播放内容。利用自动化程度足够高的动态自配置分发服务的系统,内容制作者可以制作和打包内容,明确权限,并放心地依靠其他服务提供者所提供的增值服务,向感兴趣的用户快速提供内容,而不用考虑用户位于何处,也不用考虑他们使用的是哪种设备。
NEMO的优选实施例通过为多个服务提供者提供创新和引入新服务的途径来实现这一目标,这些新服务让用户和服务提供者均可获益,而不必等待或依赖于单一的一组端到端标准。策略管理可以限制盗版者利用这些合法服务的范围。NEMO所产生的网络效应将鼓励大量合 法服务的发展,合法服务提供的价值比盗版者提供的价值更高。
下面讨论一些在许多NEMO实施例中常见的“最佳实践”技巧,其中包括以下内容:
·将复杂的面向设备的策略和面向服务的策略分开
·将比较简单的服务组合成复杂服务
·动态配置和广告服务
·动态发现和调用异类环境中的各种服务
·利用来自简单设备的网关服务
此外,还将介绍一种可以用于NEMO框架的新颖DRM引擎和体系结构。此DRM系统可用于实现以下部分或全部目标:
简单。在一个实施例中,提供了一种DRM引擎,它使用最低要求的基于栈的虚拟机(VM)来执行控制程序(例如,执行管理策略的程序)。例如,此VM可以仅由几页代码组成。
模块化。在一个实施例中,我们把DRM引擎设计成一个单一的模块,它集成在一个支持DRM的更大型应用内。现在,我们可以从宿主环境中请求许多以前由单个DRM内核执行的功能(例如加密服务),该宿主环境可以向其他代码模块提供这些服务。这使得设计人员能够相对容易地整合标准或专用技术。
灵活性。由于采用模块化设计,DRM引擎的优选实施例可用于从嵌入式设备到通用PC的各种软件环境。
开放。DRM引擎的实施例适合作为参考软件,这样,用户就可以使用几乎任何编程语言和在他们能够完全控制的系统中实现代码模块和API。在一个实施例中,系统并不强制要求用户采用特定的内容格式或限定内容编码。
无关乎语义。在一个实施例中,DRM引擎的基础是一种简单的基于图的模型,该模型将授权请求转换为对图结构的查询。图中的顶点表示系统中的实体,有向边表示这些实体之间的关系。但是,DRM引擎并不需要知道这些顶点和边在任何特定的应用中表示什么。
与Web服务无缝集成。DRM客户端引擎可以采用多种方式使用Web服务。例如,可以通过服务来动态发现图中的顶点和边。也可以通过高级Web服务来发现内容和内容许可,并将其传递给DRM引擎。尽管一个DRM引擎的具体实施例可以配置在许多地方用于支 持Web服务,但是其体系结构与Web服务无关,可以用作一个独立的客户端DRM内核。
简化的密钥管理。在一个实施例中,可以重新使用图拓扑来简化内容保护密钥的派生,而不需要加密重定位。这种密钥派生方法是DRM引擎一个可选特性,但其功能非常强大——系统也可以或者能够与其他密钥管理系统集成。
管理、加密与内容的分离。在一个实施例中,管理内容的控制在逻辑上与用于执行管理的加密信息不同。同样,控制和加密信息在逻辑上也与内容和内容格式不同。可以采用分离的方式或一个统一数据包传递每个元素,这样就可以在设计内容传递系统时具有高度的灵活性。
下面描述NEMO框架的实施例及其应用和组成部分。应该认识到,此框架本身是新颖的,其许多组件和应用也是新颖的。还应该认识到,我们可以采用多种方式来实施本发明,其中包括流程、设备、系统、装置、方法、计算机可读媒介或这些元素的组合。下面的具体说明和附图将详细介绍这些特点与优势以及其他特点与优势,并且以示例的方式阐释本发明有效主体的原理。
附图简要说明
参照以下结合附图的具体说明,可以很容易地理解本发明的有效主体的实施例,在附图中,类似的参考编号表示类似的结构元素,其中:
图1所示为系统框架的示例实施例。
图2a所示为系统节点的概念性网络。
图2b所示为P2P网络中的系统节点。
图2c所示为在Internet运行的系统节点。
图2d所示为系统网关节点。
图2e所示为系统代理节点。
图2f所示为系统设备适配器节点。
图3所示为DRM设备的概念性网络。
图4所示为概念性DRM节点授权图。
图5a所示为系统节点体系结构的概念性视图。
图5b所示为由一个系统节点的服务适配层支持的多个服务接口绑定。
图6a所示为提供服务的系统节点和使用服务的系统节点之间的基本交互。
图6b为提供服务的系统节点和使用服务的系统节点之间的基本交互的另一示例。
图7a所示为客户端WSDL交互中所涉及的服务接入点。
图7b所示为客户端本地交互中所涉及的服务接入点。
图7c所示为服务端点对点交互模式中所涉及的服务接入点。
图7d所示为服务端点对多点交互模式中所涉及的服务接入点。
图7e所示为服务端点对中介体交互模式中所涉及的服务接入点。
图8所示为服务适配层的体系结构的一个实施例。
图9a所示为依赖外部服务提供者的工作流整理器的交互模式。
图9b所示为与客户端节点进行的直接多阶段通信中所涉及的工作流整理器的交互模式。
图9c所示为工作流整理器的基本节点内交互模式。
图9d所示为工作流整理器的相对复杂的交互模式。
图10所示为DRM引擎的系统集成。
图11所示为DRM引擎的体系结构的一个实施例。
图12a所示为客户端系统节点内的DRM引擎和相关元素。
图12b所示为服务端系统节点内的DRM引擎和相关元素。
图13所示为内容保护和管理DRM对象的一个实施例。
图14所示为节点和链接DRM对象的一个实施例。
图15所示为DRM加密密钥元素的一个实施例。
图16所示为客户端和服务提供系统节点之间的基本交互模式。
图17a所示为一组通知处理节点,它发现支持通知处理程序服务的节点。
图17b所示为传递通知的过程。
图18a所示为一种客户端驱动的服务发现情形,其中,请求节点向目标服务提供节点发出服务发现请求。
图18b所示为一种对等体注册服务发现情形,其中,请求节点寻 求通过服务提供节点注册其说明。
图18c所示为一种基于事件的服务发现情形,其中感兴趣的节点接收一个关于服务可用性变化的通知(例如,服务提供节点中存在一个服务)。
图19a所示为通过与隐式可信信道的服务绑定建立信任的过程。
图19b所示为基于请求/响应模型建立信任的过程。
图19c所示为基于显式安全凭证交换建立信任的过程。
图20所示为由策略管理的服务访问。
图21所示为具有成员身份和密钥访问链接的示例DRM节点图。
图22所示为DRM VM代码模块的格式的一个实施例。
图23所示为系统功能概要的层次结构。
图24所示为DRM音乐播放器的应用情形。
具体实施方式
下面详细说明本发明的有效主体。尽管在进行说明时结合了若干实施例,但应该认识到,本发明的有效主体并不局限于任一实施例,而是包括各种替代、修改和等效体。举例来说,尽管一些实施例是在面向用户的内容和应用的环境下描述的,但熟悉本领域的技术人员会认识到,所公开的系统和方法可以很容易地应用到更广泛的应用中。例如,这些实施例可以很容易地应用于企业内容和应用环境,而没有任何限制。另外,尽管为了帮助全面理解本发明的有效主体而在以下说明中列出了各种具体细节,但是不具备部分或全部此类细节的一些实施例也可以实施。此外,为了清晰起见,对于本领域的技术人员所熟知的某些技术资料没有进行详细说明,以避免不必要地模糊对本发明的有效主体的理解。
1.概念
1.1.Web服务
Web服务体系结构(WSA)是面向服务的体系结构(SOA)的一个具体实例。SOA本身是一种由松散耦合的协作软件代理组成的分布式系统。SOA中的代理可以提供服务、请求(使用)服务或执行这两 种操作。我们可以将服务看作一组定义良好的独(self-contained)操作,它们由充当服务提供商角色的代理管理。在一些网络可寻址的位置(称为端点),可以使用标准协议和数据格式通过网络调用这些操作。“独立”的意思是指,该服务并不直接依赖于另一服务或所涵盖应用的状态或环境。
支持SOA概念的现有技术的例子包括CORBA、DCOM和J2EE。WSA非常有吸引力,因为它并不局限于特定的平台、编程语言、应用协议栈或数据格式约定。WSA使用基于XML的标准格式来描述服务和交换消息,这促进了提供者与用户之间的松散耦合和互操作性;并且支持多种标准Internet协议(特别是HTTP),这方便了潜在全局分布式系统中的部署和参与。
一种新出现的趋势是在“即插即用”服务总线环境中查看SOA。服务总线方法通过利用描述、消息传递和传输标准来提供服务编排。此基础结构还可融入用于发现、转换、安全和其他可能目的的标准。由于其中融入的通用标准的本质特性,因此WSA具有灵活性、可扩展性和可伸缩性,这就为构建编排服务总线模型提供了适当的基础。在这种模型中,基本工作单元(服务)被称为Web服务。
Web服务有很多种定义。以下定义来自万维网联盟(W3C)Web服务体系结构工作草案(2003年8月8日,请参阅www.w3.org/TR/ws-arch):
Web服务是一种软件系统,用于支持通过网络进行的可互操作的机器到机器交互。它具有一种用机器可处理的格式(具体为WSDL)描述的接口。其他系统使用SOAP消息并以其描述中规定的方式与Web服务进行交互,这些SOAP消息通常通过具有XML序列化的HTTP协议并结合其他Web相关标准进行传送。
尽管W3C定义提供了一个有用的起点,但应该认识到,这里所使用的术语“Web服务”具有更广泛的意义,而不存在例如使用特定标准、格式和协议(例如WSDL、SOAP、XML和HTTP等等)的限制。
可以将一个特定Web服务描述为用于一组逻辑上相干的操作的抽象接口,它为服务提供者和服务请求者之间的关系(可能是临时关 系)提供基础。
当然,实际的Web服务具有具体的实现。提供者的具体实现有时被称为服务(以与Web服务相区别)。实际上实现服务提供者的功能的软件称为提供者代理,实际上实现服务请求者的功能的软件称为请求者代理。拥有该代理的个人或组织相应地称为提供者实体或请求者实体。当单独使用时,根据上下文,请求者或提供者可以指相应的实体或代理。
Web服务的存在是为了达到一个目的,如何实现这一目的是由特定的Web服务消息交换的技术细节和语义指定的。技术细节是指机器可处理的准确技术规范,其允许通过网络进行消息交换。虽然技术细节具有准确的定义,但语义可能并非如此。语义是指管理请求者实体和提供者实体对于Web服务的理解和总体期望的显式或隐式“契约”,它可以是任意形式的。
通常利用三个角色的交互来建立Web服务的模型:(i)服务提供者;(ii)服务请求者;以及(iii)服务注册中心。在这一模型中,服务提供者向服务注册中心“发布”描述其Web服务的信息。服务请求者通过某种发现机制“找到”这一信息,然后利用这一信息“绑定”到服务提供者,以利用此服务。绑定只是表示请求者将通过利用由提供者在发布的服务描述中指定的消息格式化、数据映射和传输协议约定来调用提供者提供的操作。用于描述这一信息的基于XML的语言称为Web服务描述语言(WSDL)。
服务提供者提供对用于某种特定的目的一些操作集合的访问,这些操作通过WSDL服务描述进行说明;此服务描述被发布到一个注册中心(发布方法多种多样,任一种方法均可),这样,该服务就能够被发现。注册中心可以是公共的,也可以是在一个特定域内专有的。
服务注册中心是一种通过返回预先发布的服务描述来响应服务搜索请求的软件。服务请求者是一种软件,它根据从注册中心获得的WSDL中所指定的绑定信息来调用提供者所提供的各种操作。
服务注册中心可以仅在概念上存在,也可以作为实际软件真实存在,提供用于查询、定位和绑定到特定服务的服务描述的数据库。但是,无论是请求者对一个服务实际进行主动搜索,还是静态或动态地提供服务描述,注册中心都是Web服务模型的一个逻辑上独立的方 面。注意到这一点非常重要:在实际实现中,服务注册中心可以是服务请求者平台和服务提供者平台的一部分,也可以驻留在另一位置,这一位置完全由某一已知地址或通过一些其他方式提供的地址进行标识。
WSDL服务描述支持松散耦合,而松散耦合是SOA的主旨所在。尽管服务请求者最终将理解服务接口的语义,但是要获得某种期望的结果还是比较耗时的,服务描述将服务接口与特定服务绑定信息隔离开来,并支持高动态的Web服务模型。
面向服务的体系结构可以构建在许多可能的技术层之上。根据目前的实际应用,Web服务通常包括或涉及以下技术层面:
HTTP——一种用于大多数Web服务通信的标准应用协议。尽管可以通过各种网络协议(例如,SMTP和FTP等等)部署Web服务,但HTTP是目前使用的最为常见、最容易为防火墙接受的传输协议。对于某些应用,特别是内部网中的一些应用,根据具体要求,其他网络协议可能更为适合;但在当今构建的几乎所有Web服务平台中,都有HTTP的身影。
XML——一种用于格式化和访问结构化信息的内容(以及关于该内容的信息)的标准。XML是一种基于文本、用于在Web服务代理之间传递信息的标准。请注意,使用XML并不意味着Web服务的消息有效载荷不能包含任何二进制数据;但它确实意味着将根据XML约定设计这些数据的格式。大多数Web服务体系结构不一定要求将消息和数据序列化为字符流——可以仅将它们序列化为有意义的二进制流——但如果使用XML,这些流将代表XML文档。也就是说,在传输机制层次上,通常使用XML文档进行Web服务消息传递。
对于许多Web服务都特别重要的两个XML技术子集是“XML命名空间”和“XML架构”。XML命名空间用于解决命名冲突和声明XML文档中所包含元素的特定含义。XML架构用于定义和约束XML文档中所包含的各种信息项。尽管有可能(可选)通过其他方式实现这些目标,但使用XML可能是目前最常用的技术。用于Web服务文档本身的XML文档格式描述由XML架构定义,大多数实际Web服务操作和消息本身是结合XML架构进一步定义的。
SOAP——一种基于XML的标准,用于将指令和信息封装在一个具有特定格式的数据包中,以传送给其他接收者并由其进行处理。SOAP(简单对象访问协议)是一种标准机制,用于对Web服务消息进行打包,以在代理之间进行传输。SOAP的命名多少有些用词不当,它的原意是作为一种调用分布式对象的方法,在这方面,它确实比其他替代方式“更简单”;但是近来有一种趋势,就是将SOAP看作一种基于XML的有线通信协议,因为它已经超越了该缩写词的原始含义。
SOAP定义了一个相对轻量级的约定,用于结构化消息,并提供关于内容的信息。每个SOAP文档都包括一个封套,封套分为报头和正文两部分。尽管在结构上有些类似,但报头通常用于元信息或指令,以便相关接收者处理正文中所包含的内容。
SOAP还指定了一种方法,用于识别要素和完成所述要素的功能所需的处理。消息交换模式(MEP)是一个为如何在节点之间交换消息定义模式的要素。一种常见的MEP是请求-响应,它在请求节点和响应节点之间建立单一完整的消息事务(请参见http://www.w3.org/TR/2003/REC-soapl2-part2-20030624/#soapsupmep)。
WSDL——一种基于XML的标准,用于描述如何使用Web服务。从WSDL的角度来看,服务涉及一组在服务请求者和服务提供者之间交换的消息。消息是采用一种可以映射到特定协议的抽象方式来描述的。调用某些功能的消息交换称为操作。一组特定操作定义一个接口。接口通过命名绑定与具体的消息格式和协议相关联。绑定(接口到具体协议的映射)与一个适合该协议的URI相关联,从而得到一个端点。一个或多个相关端点(在特定URI上将接口映射到具体协议)的集合构成一个服务。
这些定义映射到特定的WSDL元素:
类型    用于类型定义的容器元素
消息    正在发送的数据的类型的抽象定义
操作    基于输入、输出和默认消息的组合对一个动作的抽象说明
portType操作的抽象集合——接口
绑定    指定接口(portType)的具体协议和数据格式
端口    绑定和实际网络地址的组合——端点
服务    一组相关端口(端点)
WSDL定义了一种通用绑定机制,并相应地定义了对SOAP、HTTP GET/POST和MIME的特定绑定扩展。因此,绑定并不一定意味着直接绑定到一种传输协议,而是绑定到一种特定的有线格式。最常见的Web服务绑定是SOAP,不过实际的SOAP消息交换通常是通过HTTP在端口80上进行的(通过http://URI)。但是,可以将接口直接绑定到HTTP;或者(举例来说),SOAP的绑定可以使用SMTP(通过mailto://URI))。实现甚至可以定义自己的有线格式,并使用自定义的绑定扩展。
WSDL通过对<import>元素提供支持来促进可维护性和可重用性。通过导入,可以采用适合一个组织的方式将WSDL文档分为若干单独的部分。对于一个希望在接口定义和实现定义之间有一定隔离的内聚Web服务环境而言,将WSDL文档分为以下三个文档是比较合理的:
架构(.xsd)文档——根节点为<schema>,命名空间为“http://www.w3.org/2001/XMLSchema”。
服务接口描述,包含被认为是可重用部分的内容
<message>
<portType>
<binding>
服务实现定义,包含特定服务端点
<service>
WSDL接口与Java(或IDL,或某些其他编程语言)接口不完全一致。例如,Java接口声明指定一组方法,这组方法必须与声明实现该接口的类的至少一个方法子集相匹配。可以实现接口的类不止一个,而且每个实现可以各不相同;但方法签名(方法名称和任何输入或输出类型)通常必须相同。这是该语言所要求的,并在编译时、运行时或这两个时间执行。
WSDL接口是不同的,它更类似于单独使用时并不非常有用的实际抽象类。一个Web服务的各种WSDL接口或portType在逻辑上是相关的,也就是说,这组操作名称应该是相同的(就像portType事 实上确实实现了在其他某一位置定义的特定契约,但实际上并不存在这一元素,并且不存在用于执行portType对称性的机制)。通常对每个portType都进行命名以标识其支持的绑定类型(即使portType本身并不创建绑定)。尽管相关portType的portType操作的名称相同,但是输入、输出和默认消息(如果存在)映射到特定的消息,该消息中包含对于支持特定绑定所必需的命名部分。这样就得出一个结论:消息本身并不是完全抽象的。Web服务可以且经常需要为各种所需绑定定义类似但不同的消息。
如下所述,通过利用新出现的Web服务和相关标准,可以开发一种系统体系结构来促进网络化的可互操作媒体相关服务的创建,这些服务利用跨各种各样的硬件和软件平台以及操作环境的多种不同协议和接口。
1.2.角色
本发明的优选实施例旨在实现、促进和/或积极支持对等环境,在此环境中,对等方可以通过公开服务自发地提供各种功能。该框架的一个实施例不鼓励将对等方看作具有一组固定的功能,相反,鼓励这样一种模型,即其中对等方在任何时刻都是一个或多个角色的参与者。
角色可由给定对等方结合特定行为模式公开的一组服务定义。在任意给定时刻,一个支持NEMO的节点可以根据以下多种因素扮演多个角色:它的实际实现工作(提供用于支持一组给定服务的功能)、管理配置、声明该对等方能够公开的服务的信息,以及服务接口上的载荷和运行时策略。
可以根据各种不同类型的服务定义一组显式角色。随着时间的推移,在确定公共参与模型以及引入新服务之后,就可以定义一个更为正式的角色分类方案。可以随着时间的推移而正式确定的一组主要角色可能包括:
客户端——一个相对简单的角色,其中没有公开服务,此对等方只使用其他对等方的服务。
授权者——此角色代表一个充当策略决定点(PDP)的对等方,确定请求委托者是否可以访问具有一组给定前置条件和后置条件的指定资源。
网关——在某些情况下,对等方也许不能直接发现其他服务提供者或者不能与之交互,其原因包括:传输协议不兼容、不能协商信任环境,或者不具备创建和处理与某个给定服务相关的必要消息的处理能力。网关是一个对等方,它用作通往另一对等方的桥梁,以便该允许对等方与服务提供者进行交互。从身份和建立操作的授权及信任环境的角度来看,请求对等方可以将其身份实际委托给网关对等方,并让该对等方代表自己进行协商并作出决定。或者,网关对等方可以充当一个简单的中继点,转发或路由请求和响应。
编排器——当与一组服务提供者的交互涉及重要的服务协调时(可能包括事务、分布式状态管理等等),一个对等方的能力可能不足以参与。编排器是网关角色的具体化。对等方可以请求编排器作为其代表,参与提供一个或多个服务。编排对等方可以使用特定的附加NEMO组件(如适当配置的工作流整理器),以满足编排需要。
考虑到“通过在符合任何一组适合的使用规则的任何设备上、在任何时间、在任何位置满足来自任何来源、对任何媒体的任何格式的请求,做到即时满意”的目标,以下非正式模型阐释了如何利用NEMO框架的实施例来实现这一目标。从该模型的最高层中可以清楚看到NEMO如何支持将来自模型中各层的较低层服务组合成更丰富的端到端媒体服务(没有一一列举NEMO如何支持人们可以想到的所有媒体服务的各个方面)。
在该模型的一个实施例中,有四个服务组件层:1)内容创制、组合和打包服务;2)基于Web的内容收集和发布服务;3)家用网关服务;4)消费电子设备。
这四个层中的每一层在安全、权限管理、服务发现、服务编排、用户界面复杂性和其他服务特性方面通常都有不同的要求。前两层大体适合于我们在“传统”Web服务中看到的模型,而后两层更适合可称为“个人逻辑网络模型”的模型,家用网关的某些服务处于这两种类型的模型之间。但是,消费电子设备的服务有时可以出现在任一层中。
这里存在一种两难选择,即一方面希望框架的组成部分专门化,以提高实现效率,另一方面又希望其通用化程度足够高,以包括端对端解决方案。例如,UDDI目录和发现方法对于相对静态和集中的Web服务可以正常工作,但对于更为动态的个人网络的瞬时组合,象UPnP 和Rendezvous中使用的发现模型可能更合适。因此,在一些实施例中,在框架中提供了多个发现标准。
与此类似,在将权限管理应用于通过批发、聚合、零售分发子层进行的媒体分发时,就可能有许多不同类型的复杂权限和责任需要表达和跟踪,这就需要一种具有丰富表达能力的复杂权限语言、高级内容管理和清除服务以及全局信任模型。但是,用于家用网关和消费电子设备层的权限管理和内容管理可能需要一种不同的信任模型来强调合理使用权,从用户的角度来看,它们较为简单。个人逻辑网络中的对等设备可能希望使用该网络中比较简单的信任模型进行交互,并且能够利用全局信任模型通过广域网与对等方进行交互(可能通过代理网关服务)。在用户端,跨设备对内容可用性进行自动管理会带来复杂性,这些设备中的一部分是可移动的,并且有时会跨多个网络。因此,在支持端对端分发的同时进行有效权限管理的方法也可能是异类的,支持各种权限管理服务,其中包含的一些服务可以解释分发权的表达式,并根据上下文将它们转换为与销售事务编排在一起的事务(或者可能执行预定权的另一事件)中各个用户的使用权。
1.3.逻辑模型
在一个实施例中,系统框架由一组在逻辑上连接在一起的节点的集合组成,这些节点以对等(P2P)方式进行交互。对等计算通常定义为计算机和其他智能设备之间的资源(如硬盘和处理周期)共享。请参见http://www.intel.com/cure/peer.htm。在这里,P2P可看作是一种通信模型,它允许网络节点对称地使用和提供各种类型的服务。通过对等消息传递和工作流整理,可以从一组更基础的异构服务动态创建多种服务。这样在共享资源为许多不同类型的服务时,甚至在使用不同服务绑定时,可以检查P2P计算的可能性。
不同实施例可以提供媒体服务框架,使参与者(例如,用户、内容提供者、设备制造商和服务提供者)能够相互查找、交互、交换价值和以丰富的动态方式进行协作。这些不同类型的服务的范围包括从基本服务(发现、通知、搜索和文件共享)到更复杂更高级的服务(例如保险箱、许可、匹配、授权、支付交易和更新)以及这些服务的部分或全部的组合。
服务可以分布在多个对等通信节点上,每个节点都利用为此框架设计的消息泵和工作流整理器(在下文中将进行更详细的说明)来提供消息路由和消息编排。
节点之间通过发出服务调用请求和接收响应来进行交互。请求和响应消息的格式和有效载荷最好采用基于标准XML架构的Web服务描述语言(例如WSDL)定义,所述语言包括一组可扩展的数据类型,支持对服务及其相关接口绑定进行描述和组合。WSDL中的许多对象类型是多态的,可以对其进行扩展以支持新功能。此系统框架支持构建各种通信模式,其中既有与单一服务提供者的直接交互,也有将来自多个服务提供者的服务重新编排所得到的复杂聚合。在一个实施例中,该框架支持使用现有服务编排标准(WSCI和BPEL等)的基本机制,此外,还允许服务提供者使用自己的约定。
与服务调用相关的消息语法最好采用一种相对灵活和可移植的方式来描述,与系统框架中所使用的核心数据类型一样。在一个实施例中,使用WSDL提供相对简单的方式来引用与所描述服务相关的语义描述,从而完成对消息语法的描述。
一个服务接口可以具有一个或多个服务绑定。在这样一个实施例中,只要节点的接口绑定可以用(举例来说)WSDL表示,并且请求节点可以支持与该绑定相关的约定和协议,请求节点就可以调用所述另一节点的接口。例如,如果一个节点支持Web服务接口,则可能会要求一个请求节点支持SOAP、HTTP和WS-Security等等。
可以通过直接提供权限管理要素的标准化方式来控制(例如通过权限管理)任何服务接口。节点之间的交互可以看作受控操作。
实际上,可以将任何类型的设备(实际的或虚拟的)看作是潜在支持NEMO的,并能够实现NEMO框架的关键方面。例如,设备类型包括消费电子设备、网络服务和软件客户端。在一个优选实施例中,支持NEMO的设备(节点)通常包括以下部分或全部逻辑模块(在下文中将进行更详细的讨论):
本地服务API——设备实现的一个或多个服务的集合。不需要NEMO节点直接或间接地在NEMO框架中公开任何服务。
本地服务实现——本地服务API的相应实现集。
服务适配层——一种逻辑层,通过该逻辑层,可以使用一个或多 个用(举例来说)WSDL描述的可发现绑定来访问实体的本地服务中的公开子集。
框架支持库——为使用NEMO框架提供支持功能的组件,包括对调用服务接口、消息处理和服务编排等的支持。
1.4.术语
在一个实施例中,一个基本WSDL概要定义了最小的一组“核心”数据类型和消息,用于支持交互模式和基础结构功能。用户既可以基于这一核心采用特殊方式直接定义或通过某种形式的标准化过程来定义其他概要,添加新的数据和服务类型以及扩展现有的数据和类型。在一个实施例中,这一核心概要包括对以下部分或全部主要基本数据类型的定义:
节点——代表系统框架中的一个参与者。一个节点可以扮演包括服务用户和/或服务提供者在内的多种角色。节点可以采用多种形式实现,其中包括消费电子设备、软件代理(如媒体播放器)、虚拟服务提供者(如内容搜索引擎)、DRM许可证提供商或内容保险箱。
设备——封装对虚拟或物理设备的表示。
用户——封装对客户端用户的表示。
请求——封装对一组目标节点的服务请求。
请求输入——封装请求的输入。
响应——封装与请求相关的响应。
请求结果——封装与某请求相关的响应中的结果。
服务——封装对一组定义良好的功能的表示,这些功能由提供者节点公开或提供。例如,它可以是在移动电话之类的设备中提供的低级功能(例如语音识别服务),也可以是通过万维网提供的复合功能(例如购物服务)。服务可以涵盖各种各样的应用,其中包括与DRM相关的服务,例如客户端个性化和许可证获取。
服务提供者——公开某组服务的实体(例如节点或设备)。潜在的服务提供者包括消费电子设备(如移动电话、PDA、便携式媒体播放器和家用网关)以及网络运营商(如有线电视运营商)、移动网络提供商、基于Web的零售商和内容许可证提供商。
服务接口——与一个或多个服务交互的定义良好的方式。
服务绑定——封装与服务进行通信的特定方式,包括用于调用服务接口的约定和协议。它们可以通过各种定义良好的方式进行表示,例如WS-I标准XML协议、基于WSDL定义的RPC或者来自DLL的函数调用。
服务接入点(SAP)——封装使得节点可以对一组目标服务提供节点发出服务调用请求并接收一组响应的必要功能。
工作流整理器(WFC)——一种服务编排机制,它提供一个公共接口,通过该接口,节点可以管理和处理与服务调用相关的请求与响应集合。此接口提供一些基本构造块,用于通过管理与服务相关的消息来编排服务。
对于特定的应用(如数字权限管理[DRM]),典型概要可能包括用于下列内容保护和管理对象的各种DRM相关服务(在下文中将进行说明),这些对象表示系统中的实体,保护内容,将使用规则与内容相关联,并在接收到请求时确定是否准予访问:
内容引用——封装对内容项的引用或指针的表示。此类引用通常利用其他标准化方式来描述内容格式和位置等。
DRM引用——封装对数字权限管理格式的说明的引用或指针的表示。
链接——实体(如节点)之间的链接。
内容——表示媒体或其他内容。
内容密钥——表示用于加密内容的加密密钥。
控制——表示控制与内容的交互的使用规则或其他规则。
控制器——表示控制与内容密钥对象之间的关联。
投射器——表示内容与内容密钥对象之间的关联。
在一个实施例中,核心概要包括对以下部分或全部基本服务的定义:
授权——授权某参与者访问一个服务的请求或响应。
管理——对某项(例如,音乐文件、文档或服务操作)执行授权或控制影响的过程,例如下载或安装软件升级版本的功能。管理通常与提供如信任管理、策略管理和内容保护的功能的服务进行交互。
消息路由——提供消息路由功能的请求或响应,消息路由功能包括使服务提供节点转发消息或收集和组合消息的功能。
节点注册——为节点执行注册操作从而使该节点可以通过中间节点被发现的请求或响应。
节点发现(查询)——与发现节点相关的请求或响应。
通知——将目标通知消息发送或传递到一组给定节点的请求或响应。
安全赁证交换——与允许节点交换安全相关信息(如密钥对和证书等)有关的请求或响应。
服务发现(查询)——与发现由某组节点(包含一个或多个节点)提供的服务相关的请求或响应。
服务编排——根据服务提供者指定的规则,将服务组合成可管理的粗粒度服务、可重用的组件或完整的应用。这样的例子包括基于提供者身份的规则、服务类型、访问服务的方法、组合服务的顺序,等等。
信任管理——提供一组通用的约定和协议,用于为节点之间的交互创建授权和信任环境。在某些实施例中,NEMO信任管理可利用和/或扩展现有的安全规范与机制,包括Web服务领域中的WS-Security和WS-Policy。
升级——表示有关接收功能升级的请求或响应。在一个实施例中,完全抽象此服务以及提供具体表示的其他概要。
1.5.节点之间的交互情况说明
如下文中更为详细的讨论所述,两个系统节点(服务请求者和服务提供者)之间的基本逻辑交互通常包括以下事件序列。从服务请求节点的角度来看:
服务请求节点发出服务发现请求,以定位支持NEMO的节点,这些节点能够利用所指定的服务绑定来提供必要服务。节点可以选择缓存关于被发现的服务的信息。节点之间用于服务发现的接口/机制可以恰恰是NEMO节点选择实现的另一服务。
在发现候选服务提供节点之后,请求节点可以向基于特定服务绑定的一个或多个服务提供节点发送请求。
在一个实施例中,希望相互安全通信的两个节点将建立信任关系,以便交换WSDL消息。例如,它们可以协商一组兼容的信任凭证(例 如X.500证书和设备密钥等),这些凭证可用于确定身份、验证授权和建立安全通道,等等。在某些情况下,这些凭证的协商可能是服务接口绑定(例如WS-Security(在使用WS-I XML协议的情况下)或两个已知节点之间的SSL请求)的一个隐式属性。在其他情况下,对信任凭证的协商可能是一个显式的单独步骤。在一个实施例中,由一个给定节点负责确定哪些凭证足以与另一节点交互,并决定它是否可以信任一个给定节点。
请求节点生成与请求的服务相对应的适当WSDL请求消息。
在生成消息后,即将其发送到目标服务提供节点。根据服务绑定,请求的通信方式可以是例如同步或异步RPC方式,也可以是面向消息的。服务请求的发送和响应的接收可以由设备直接完成,也可以通过NEMO服务代理完成。服务代理(将在下文中进行描述)提供了用于向其他参与者发送消息的抽象和接口,并可以隐藏某些服务绑定问题,例如兼容消息格式、传输机制和消息路由问题,等等。
在发送请求之后,请求节点通常会接收到一个或多个响应。根据服务接口绑定的细节和请求节点的首选设置,可以采用多种方式返回响应,其中包括(举例来说)RPC方式的响应或通知消息。所述响应在到目标节点的途中可以通过其他中间节点,这些中间节点可以提供许多相关服务,其中包括(举例来说)路由、信任协商、整理和关联功能,等等。
请求节点对响应进行验证,以确保响应符合它与服务请求节点之间已协商好的信任语义。
然后根据消息载荷类型和内容进行适当处理。
从服务提供节点的角度来看,事件序列通常包括以下内容:
确定是否支持请求的服务。在一个实施例中,NEMO框架并没有规定服务接口如何映射为服务的入口点的方式和粒度。在最简单的情况下,服务接口可以明确地映射到给定服务,而绑定服务和调用服务的动作可以构成对服务的支持。但是,在一些实施例中,单个服务接口可以处理多种类型的请求;给定服务类型可能会包含其他属性,在确定节点支持特别期望的功能之前,需要对这些属性进行检查。
在一些情况下,服务提供者需要确定它是否相信请求节点,并协商一组兼容的信任凭证。在一个实施例中,无论服务提供者是否确定 信任请求节点,都将应用与服务接口相关的策略。
服务提供者确定授权请求,并将其发送给负责授权对接口的访问的节点,以确定请求节点是否具有访问权限。在许多情况下,授权节点和服务提供节点是相同的实体,授权请求的发送与处理是本地操作,可以通过一种轻量级服务接口绑定(例如C函数入口点)调用这些操作。
接收到授权响应后,如果请求节点获得授权,服务提供者将满足该请求。如果未获得授权,则生成一个适当的响应消息。
根据服务接口绑定和请求节点的首选设置返回该响应消息。在路由到请求节点的过程中,消息可以通过其他中间节点,这些中间节点可以提供必要的服务或“增值”服务。例如,中间节点可能提供路由和信任协商,或向可以采用请求节点可接受的方式来传递消息的通知处理节点传递消息。“增值”服务的一个例子是赠券服务,如果该服务了解到请求节点的意向,就会将赠券追加到消息中。
2.系统体系结构
请看NEMO系统框架的一个示例实施例,如图1所示,它实现了一个DRM应用。
如上所述,NEMO节点可以通过发出服务调用请求和接收响应进行交互。NEMO框架支持构建多种不同的通信模式,既有与单个服务提供者的简单点对点交互,也有将来自多个服务提供者的服务编排成一组服务的复杂聚合。
在图1中,NEMO节点与另一节点进行交互,以提供各种服务,这些服务聚合起来实现一个音乐许可系统。Web音乐零售商120可以提取存储在用户音乐保险箱110中的音乐,并通过娱乐家用网关130将其提供给在家中的终端用户。来自用户音乐保险箱110的音乐可能包括一些管理规则,在规则允许范围内,可以向Web音乐零售商120提供此类音乐,然后由他们将其提供给其他用户,进一步使用和分发。娱乐家用网关130是一种可以用来播放此类音乐(及其视频和其他内容)的工具,例如,在用户的家用PC上(例如,通过PC软件视频播放器140),或者在用户的便携式播放设备上(例如,便携式音乐播放器150)。例如,用户可以带着便携式音乐播放器150旅 行,通过无线Internet连接(例如连接到数字权限许可服务160)获得许可,以购买其他歌曲,或者增加重新播放现有的歌曲次数,甚至通过软件升级服务170给便携式音乐播放器150增加新功能。
NEMO节点可以采用多种不同的方式相互交互和与其他设备交互。如图2a所示,NEMO主机是承载至少一个NEMO节点的某种型号的机器或设备。主机可以位于个人局域网210内,或者位于可以通过Internet访问的远程位置220。例如,主机可能是服务器230、桌面PC 240、便携式计算机250或个人数字助理260。
NEMO节点是一种软件代理,它可以向其他节点(例如提供第三方Web服务的主机235)提供服务,也可以调用NEMO管理的框架中其他节点的服务。一些节点270通过专用通信信道(如蓝牙)系留到另一主机。这些主机240和250具有网络连接性,并具有足够的处理能力向其他参与的NEMO节点提供一个虚拟节点。
如图2b所示,NEMO节点可以是本地或个人局域网210中的一个完整对等方。节点共享公开和调用服务的对称功能;但是,每个节点提供的服务集合通常并不完全相同。节点可以广告自己的服务,也可以接收对它们提供的服务的查询。
如果存在Internet连接,如图2c所示,则本地NEMO节点(例如位于个人局域网210中)也可以访问远程节点220的服务。取决于本地网络配置和策略,本地节点和远程节点(例如支持Internet的NEMO主机280)也可以作为NMEO对等方进行互操作。
如图2d所示,并不是所有的NEMO节点都可以位于能够与其他主机通信的主机上,无论本地节点还是远程节点,情况均是如此。NEMO主机280可以提供一种网关服务,通过这种网关服务,一个节点可以调用另一节点(例如系留节点285或个人局域网210中的节点)的服务。
如图2e所示,系留设备上的节点295可以通过网关访问其他节点的服务,如上文中所讨论的。其他节点也可以通过另一主机290上的代理服务对节点295进行访问。代理服务创建一个运行于NEMO主机上的虚拟节点。这些代理节点可以是完整的NEMO对等方。
如图2f所示,NEMO主机可以通过NEMO节点适配器为系留设备提供专门支持。专用通信信道296用于主机/NEMO设备适配器 297和系留节点298之间的通信,可以使用任何适合的协议。系留节点298并不能看到其他NEMO对等节点,其他NEMO对等节点也看不到它。
接下来请看数字权限管理(DRM)的功能示例,DRM可以由某些实施例中支持NEMO的设备提供,也可以用于NEMO环境之外。如上所述,NEMO系统框架的优选实施例的主要目的之一就是,支持开发跨商业网络层和面向用户的媒体网络层的媒体相关服务之间的可互操作安全互连。除了服务连接性之外,媒体相关服务之间的互操作性经常需要对通过这些服务施加到可用内容上的使用权进行协调管理。NEMO服务和这里描述的示例DRM引擎可以组合起来使用,以实现互操作性,所述互操作性允许基于NEMO框架的设备就可以为用户提供无缝呈现的感觉和使用体验,甚至在面对异类的DRM和媒体格式基础结构时同样如此。
对于DRM应用程序,如图3所示,支持NEMO的DRM设备的网络可以包括内容提供者/服务器310(为其他DRM设备打包内容)以及用户PC播放器330和用户PC包装器/播放器320(不仅可以播放受保护的内容,而且还可以打包内容,以便将其传递到便携式设备340)。
在每个DRM设备中,DRM引擎都执行特定的DRM功能(例如,执行许可条款和向主机应用提供密钥等等),并依赖于主机能够最有效地提供的服务(例如,加密、解密和文件管理)的主机应用。
如下文中更为详细的讨论所述,在一个实施例中,DRM引擎包括一个虚拟机(VM),用于决定是否允许对受保护内容进行某些特定操作。我们可以利用最小限度的一组指令将这一控制VM实现为一个简单的基于栈的机器。在一个实施例中,它能够执行逻辑和算术计算,并从主机环境中查询状态信息,以便检查诸如系统时间和计数器状态等参数。
在一个实施例中,DRM引擎利用一个基于图的算法来验证DRM价值链中两个实体之间的关系。图4说明了此类图的概念性实施例。该图包括一组由链接连接的节点或顶点。系统中的每个实体都可以由顶点对象表示。只有当实体需要由链接对象引用或者作为加密目标信息的接收方时,才需要具有对应的顶点对象。在一个实施例中,顶点 通常代表用户、设备或组。顶点对象也具有相关属性,这些属性表示与该顶点相关的实体的某些特定属性。
例如,图4显示了两个用户(Xan和Knox)、两台设备(Mac和便携式设备)和若干代表组的实体(Carey家庭的成员、公共图书馆的成员、特定音乐服务的订户、RIAA认可的设备,以及由特定公司生产的设备)。其中每个都具有与之相关的顶点对象。
链接的语义可能会随应用特定的方式发生变化。例如,从Mac顶点到Knox顶点的有向边可能表示Knox是Mac的所有者。从Knox到公共图书馆的边可能表示Knox是该公共图书馆的一名成员。在一个实施例中,DRM引擎并不强加或解释这些语义,它只是确定图中是否存在路径。可以将此顶点图看作一个“授权”图,因为两个顶点之间存在路径或(直接或间接)关系可以解释为授权一个顶点访问另一顶点。
例如,因为Knox链接到Carey家,并且Carey家链接到音乐服务,所以在Knox和音乐服务之间存在路径。当存在从另一个顶点到音乐服务的路径时,就认为可以从该顶点访问音乐服务顶点。从而可以编写一个控制,该控制允许基于以下条件访问受保护内容,即可以从其中正在执行请求访问的应用(例如,DRM客户端主机应用)的便携式设备访问音乐服务。
例如,内容所有者可以创建一个由控制VM解释的控制程序,如果使用设备归公共图书馆的成员所有并被RIAA认可,则允许播放特定的音乐片断。当运行于该设备的控制VM评估此控制程序时,DRM引擎确定在便携式设备和公共图书馆之间以及便携式设备和RIAA认可之间是否存在链接。图中的边与顶点可以是静态的,内置在设备之中,也可以是动态的,通过与主机应用通信的服务被发现。
由于没有对顶点和链接强加语义,因此DRM引擎可以支持更大的灵活性。该系统可适用于从传统的基于委托的策略系统到授权域和个人局域网的许多使用模型。
在一个实施例中,DRM客户端还可以重用授权图来派生内容保护密钥。系统设计人员可能会选择允许链接的存在也表示某些加密信息的共享。在这些情况下,授权图可用于派生内容密钥,而无需显式加密重定位到使用设备。
3.节点体系结构
3.1.概述
任何类型的设备(物理的或虚拟的),包括消费电子设备、网络服务或软件代理,都可以潜在支持NEMO,这意味着可以采用某种方式扩展设备的功能,使其能够参与到NEMO系统中。在一个实施例中,支持NEMO的设备(节点)在概念上由某些特定的标准模块组成,如图5a所示。
本地服务API 510表示设备实现的一个或多个服务的逻辑组合。不需要NEMO节点直接或间接公开任何服务。本地服务实现520表示本机服务API对应的一组实现。
服务接入点530提供对调用公开服务接口的支持。它封装了必要的功能,使用这些功能,NEMO节点可以向一组目标服务提供NEMO节点发出服务调用请求,并接收一组响应。支持NEMO的节点可能会使用各种发现、名称解析和传输协议,因此有必要创建一种灵活且可扩展的通信API。服务接入点可以采用适合特定执行环境和应用框架样式的各种方法来实现。用于其接口的一个通用模型将是一个能够以某种形式接收XML消息和返回XML消息的接口。也可以支持具有多个本地接口的其他模型。
NEMO服务适配层540表示一个可选层,通过该层,可以利用一个或多个可发现绑定来访问一个实体的本地服务的公开子集。它提供了一个高于本地服务API的抽象级别,从而使服务提供者能够更容易地支持多种类型的服务接口绑定。在服务适配层不存在的情况下,如果它支持必要的通信协议,那么它仍然有可能通过服务接入点530直接与服务交互。
服务适配层540为服务提供者提供了一种通用的方法,用于公开服务、处理请求和响应,以及在NMEO框架中编排服务。它是发布服务的一个逻辑点,并且为实现其他特定服务接口绑定提供了基础。
除了提供一种通用方法来向其他支持NEMO的节点公开服务提供者的本地服务之外,服务适配层540还提供一个自然位置,在这个位置上对组件进行分层,以支持附加的服务接口绑定560,如图5b所示。通过支持附加的服务接口绑定,服务提供者增加了通过服务接入 点或某一其他本地API协商和使用兼容绑定的可能性。
在图5a中,工作流整理器550提供对服务消息管理和服务编排的支持。它提供一个公共接口,允许节点管理和处理请求集合以及响应消息。此接口反过来还提供了一些基本构造块,用于通过管理与这些服务相关的消息来编排服务。此接口通常由支持消息路由功能以及中间消息队列和消息整理的节点来实现。
在一些实施例中,NEMO框架包括一组可选支持服务,这些服务便于实体参与到网络中。可以根据各种功能类型以及需要此类服务(例如支持客户端应用的服务,与服务提供者所需要的服务相对)的实体类型对这些服务进行分类。典型的支持服务包括:
WSDL格式化和处理例程——提供创建和处理基于WSDL的服务消息的功能。
服务缓存——提供一个公共接口,通过该接口,节点可以管理发现的节点及其所支持的服务之间的一组映射。
通知处理器接口——提供一个通用服务提供者接口,用于将支持通知处理的NEMO节点扩展到某些定义良好的通知处理引擎。
其他支持功能——包括消息ID生成、时间戳等例程。
3.2.基本的节点交互
在更具体地讨论NEMO节点的单个体系结构元素之前,理解这些节点之间的交互和通信的方式是十分有益的。NEMO节点支持多种通信方式,包括同步RPC通信、异步RPC通信以及单向接口调用和客户端回调等通信方式。
异步RPC传递方式——如果请求需要在较长的时间内才能处理完成,而客户端又不想等待,则特别适合使用此模型。客户端提交一个请求,希望服务提供节点以异步方式处理请求。在这种情况下,服务提供端点可能做出响应,表明它不支持这种模型,或者,如果服务提供节点支持此模型,它返回的响应将携带一个标签,在其后的请求中可以将这个凭证提交给指定的服务提供节点,以确定该指定节点有一个对该客户端的请求的响应。
在一个实施例中,支持此模型的任何服务提供端点都必须根据内部策略缓存对未决的客户端请求的响应。如果客户端想要收回与此类请求相关的标签,但是得不到任何响应,或者响应被服务提供节点丢 弃,那么将会返回一个相应的出错响应。在这一实施例中,将由客户端确定何时做出此类后续请求,以尝试收回响应标签。
同步RPC传递方式——客户端提交请求,然后等待返回一个或多个响应。支持NEMO的服务提供端点可能做出响应,表明它不支持此模型。
基于消息的传递方式——客户端提交一个请求,表明它想要通过与其一个或多个通知处理服务接口相关联的消息通知来接收任何响应。支持NEMO的服务提供端点可能做出响应,表明它不支持此模型。
从客户端应用的角度看,使用上述任何一种交互模式都不需要必需阻塞和等待响应或显式轮询的体系结构。采用以上传递方式机制,我们可以使用线程或其他与平台有关的机制来模拟拥塞和无拥塞语义。另外,以上任何一种方式都不是为了解决特定通信信道的延迟问题——只有在实际处理请求时才有可能产生延迟。通信信道的延迟问题应该在组件(例如服务接入点)具体实现时或直接在客户端的实现中解决。
3.3.服务接入点
如上所述,服务接入点(SAP)可作为通用的可重复使用API,供服务调用。它可以封装协商结果(negotiation),并可使用传输信道。例如,一些传输信道可能要求通过TCP/IP建立的SSL会话,而另外一些信道可能仅支持UDP/IP上的相对不可靠通信,还有一些信道则可能根本不是基于IP的。
SAP可以封装对一组初始NEMO节点的发现,以进行消息路由。例如,一个有线机顶盒可能会有一个专用网络连接,而且要求所有消息都必须通过特定的路径和中间转发设备。家庭网络中的便携式媒体播放器可以使用UpnP发现来查找多个可直接访问的节点。客户端可能不能够或不选择通过交换XML消息来直接与其他NEMO节点进行会话。在这种情况下,可以使用公开和使用所支持的本地接口的SAP版本。
在优选实施例中,SAP模式支持以下两种常见的通信模型(当然也支持结合了这两种模型的混合模型以及其他一些通信模型):(i)基 于消息的通信模型(如上所述)——SAP生成XML请求消息,并通过一些接口绑定直接与服务提供者交换NEMO消息。(iI)本地通信模型——SAP可以通过一些本地通信协议与服务提供者进行交互。SAP可以在内部转换为XML消息,也可以将在框架内其他地方定义的XML消息转换为SAP。
图6a是两个NEMO对等节点之间的交互示例。客户端节点610通过使用NEMO服务接入点(SAP)620与服务提供节点660进行交互。在本例中,使用了Web服务协议和标准来公开服务和进行传输。服务提供节点660使用其Web服务层670(例如,使用基于WSDL和SOAP的消息传递机制)向节点610等客户端公开其服务。在映射层640(将SOAP消息映射到SAP接口620,并反向映射)和信任管理处理层650(例如,通过在SOAP报头内传送的凭证,该层可以利用WS-Security)的帮助下,客户端节点610的Web服务层630创建并解释SOAP消息。
图6b是另外一个NEMO节点之间的交互示例。服务提供节点682使用SAP 686与客户端节点684进行交互。在本例中,与客户端684相比,服务提供节点682包括一个不同的、但可互操作的信任管理层。具体地说,服务提供节点682包括信任引擎688和授权引擎690。在本例中,信任引擎688一般负责加密和解密SOAP消息、验证数字证书和进行其他基本的加密运算,而授权引擎690则负责进行高级别的策略制定。在图6b的示例中,客户端节点684包括一个信任引擎692,但不包括授权引擎。因此,在本例中,客户端节点684能够进行基本的加密运算,并执行一些相对简单的策略(例如,与消息验证级别、机密级别相关的策略等),但是可能需要依靠节点682评估和执行更高级别的策略,即管理客户端对服务提供节点682所提供的服务和/或内容的使用以及与之的交互。应该注意到,图6b是一个是为了举例说明,而不是为了限制,在其他实施例中,客户端节点684也可能包含一个授权引擎,如果客户端需要遵守一组与指定策略有关的约束,可能就会这样。因此,我们可以看出,根据节点的要求,不同的NEMO对等端可能包含信任管理框架的不同部分。图6b还表明,节点之间的通信链路对传输可以是不可知的。即使在SOAP处理模型中,也可以使用合适的数据编码和/或处理规则。例如,可以用另 一种支持不同编码方案的安全模型替代XML安全模型。
服务接入点有多种实现形式,例如在客户端边界内实现(以共享库的形式)和在客户端边界外实现(以在不同进程中运行的代理的形式)。根据特定平台类型或客户端的需要,可以自定义服务接入点的具体实现形式。从客户端的角度看,服务接入点的使用是可选的,尽管一般来说它具有通用性。下面将进行详细的阐述。
可以将服务接入点实现为静态组件,仅支持一组固定的服务协议绑定,也可以动态地支持新的协议绑定。
我们至少可以从两个角度来表征涉及服务接入点的交互,即请求参与者所使用的客户端和与其他支持NEMO的端点(节点)交互的服务端。
在一个客户端实施例(如图7a所示)中,服务接入点710直接与客户端720交换XML消息。客户端720直接生成请求消息740,并将它们提交到服务接入点710,服务接入点710生成一个或多个响应消息750,并将它们发送给客户端720,由客户端720收集、分析并处理这些消息。另外,客户端720(提出请求时)还可能会提交显式服务绑定集730,用于确定请求传递的方向。这些服务绑定可以通过多种方法来获得。例如,客户端720可以执行服务发现操作,然后选择合适的服务绑定,或者可以使用从先前的响应中获得的信息。
在另一个客户端实施例(如图7b所示)中,服务接入点760直接支持客户端780的本地协议770。服务接入点760在内部进行XML和本地协议770之间的消息转换,从而使客户端780能够参与NEMO系统。要想使此支持生效,本地协议770(或本地协议770与运行环境的组合)必须以某种形式向服务接入点760提供必要的信息,服务接入点760将生成适当的请求,并确定合适的目标服务绑定(如果必要)。
在服务端,可以支持在客户的服务接入点与支持NEMO的服务提供端点之间的多种交互模式。对于客户端,这些交互模式可以定制,并且可以根据不同条件而变化,这些条件包括请求的性质、基础通信网络、应用的性质和/或与选定的服务绑定相关的传输协议等。
图7c描述了一种相对简单的服务端交互模式,其中服务接入点711以点对点的方式直接与目标服务提供节点712进行通信。
现在我们转到图7d,服务接入点721可能开始与多个可能的服务提供者725的进行直接通信(也可能直接接收725发出的响应)。通过从客户端转发多个服务绑定,可以实现这种交互模式,供服务接入点721使用;或者,服务接入点721也可以利用广播网络或多播网络来转发消息。根据在请求中指定的首选设置,服务接入点721可以选择收集和整理响应,或者简单地返回第一个可接受的响应。
在图7e中,服务接入点731并不直接与任何选定的服务提供端点735直接通信。相反,请求要通过中间节点733进行路由,由中间节点733转发请求,接收任何响应,并将它们转发回服务接入点731。
如果服务接入点731不能够或者不希望直接支持任何与服务提供端点735相关的服务绑定,但是却可以与中间节点733建立关系(中间节点733愿意作为网关),那么这种交互模式可能就比较理想。另一方面,客户端可能无法发现任何适当的服务提供节点或为服务提供节点确定服务绑定,但是可能愿意让中间节点733尝试发现适当的服务提供者。最后,服务接入点731可能想要利用中间节点733的作用,因为它支持更强大的收集和整理功能,而反过来,这允许在服务接入点731与服务提供者(例如端点节点735)之间使用更加灵活的通信模型。
除了以上的基本服务端交互模式,还可以在服务接入点内实现这些模式的组合或新模式。尽管服务接入点的目的是为了提供一个通用接口,但是其实现一般与通信模型的特性密切相关,而且与给定的支持的NEMO的端点所使用的相关协议也密切相关。
在实际运用中,服务接入点可用于封装处理IO相关数据的列集和散集的逻辑,例如将对象序列化为适当的表示(例如WSDL格式的XML表示),或者以适当的格式封装XML编码对象的逻辑。
在优先的实施例中,SAP还封装用于通过一个或多个支持的应用、会话和/传输协议进行通信的逻辑,例如使用SOAP封装进行HTTP上的服务调用。
最后,在某些实施例中,SAP可能会封装提供消息完整性和机密性的逻辑,例如支持建立SSL/TLS会话和/或通过XML签名和XML加密等标准支持签名/验证。服务接口的具体地址未知或者没有指定时 (例如,根据搜索条件跨多个节点调用服务时),SAP可以通过封装逻辑建立至一组默认/初始NEMO节点的初始连接,这些节点能够发现或处理服务。
下面是一个示例,它是由一个SAP实施例导出的高级API描述的无限制实施例。
ServiceAccessPoint::Create(Environrnent[])->ServiceAccessPoint-一这是一个singleton接口,它返回一个初始化的SAP实例。可以根据一组可选的环境参数对SAP进行初始化。
ServiceAccessPoint::InvokeService(Service Request Message,Boolean)->Service Response Message——支持同步服务调用API,其中客户端(使用WSDL)生成一个XML服务请求消息,并接收响应的XML消息。这个API还接受Boolean标识,这个标识表明客户端是否应该等待响应。通常情况下,这个标识应该为true,除非消息没有相关的响应,或者消息的响应将通过另一个信道(例如通过通知信道)异步发送回来。产生的消息还可能传送结果出错情况。
ServiceAccessPoint::ApplyIntegrityProtection(Boolean,Desc[])->Boolean——这个API允许调用者指定是否应使用完整性保护,以及对消息中的哪些元素进行完整性保护。
ServiceAccessPoint::ApplyConfidentiality(Boolean,Desc[])->Boolean——这个API允许调用者指定是否使用机密性策略,以及对消息中的哪些对象使用机密性策略。
ServiceAccessPoint::SetKeyCallbacks(SigningKeyCallback,
SignatureVerificationKeyCallback,
EncryptionKeyCallback,
DecryptionKeyCallback)->
Boolean
如前面的API中所示,在发送或接收消息时,它可能包含一些需要进行完整性保护或保持机密性的对象。本API允许客户端在它本身与SAP之间设置一些必要的指令,从而使SAP能够获得与特定类型的信任管理操作相关的密钥。在一个实施例中,接口以回调为基础,回调通过数字签名和验证支持完整性保护,通过加密和解密支持机密性。在一个实施例中,每个回调的形式如下:
KeyCallback(KeyDesc)->Key[]
在这里,KeyDesc是一个描述所要求的密钥的可选对象,回调将返回一个适当的密钥列表。使用InvokeService(...)API时,接收响应服务消息时要对签名进行验证。如果消息元素未能通过验证,InvokeService(...)可以返回一个XML消息,提示状态,并表明元素未能通过验证。
3.4.服务适配层
如上所述,服务适配层提供一个通用方法,供服务提供者公开它们的服务、处理请求和生成服务响应以及在NEMO框架内编排服务。在其上可以实现其他特定的服务接口绑定的基础。在一个实施例中,WSDL用于描述系统内的服务的接口。
除了定义如何将服务绑定到特定的接口之外,这样的服务描述还可能包含一个授权服务提供者列表(该列表中的授权服务提供者将负责服务访问授权)、一个指向语义描述(它描述服务的用途和用法)的指针以及对组合服务的必要编排的描述(因为要设计其他一个或多个服务的执行)。
除了作为公开服务的逻辑点之外,服务适配层还封装NEMO数据类型的具体表示,以及在NEMO服务概要中为给定参与者支持的平台指定的对象。它还包含一个机制,用于将与服务相关的消息映射到相应的本地服务实现。
在一个实施例中,NEMO框架并不规定如何实现指定平台或参与者的服务适配层。有些情况下,服务提供节点并不需要转换其本地服务协议,也就是说,仅向可以通过本地协议进行通信的客户端节点公开其服务,在这种情况,该服务提供节点并不需要包含服务适配层。
否则,服务提供节点的服务适配层通常应包含以下元素,如图8所示:
入口点——它是一个封装服务接口入口点810和相关WSDL绑定的层。其他节点通过这些接入点调用服务、传递参数数据和收集结果。
消息处理逻辑——层820,它对应于消息处理逻辑,通常包含用于驱动消息处理的消息泵825,一些类型的XML数据绑定支持826,以及低级XML分析器和数据表示支持827。
本地服务——一个表示可用本地服务的层(相应的服务消息被映射到该层),它包含本地服务API 830和相应的实现840。
3.5.工作流整理器
在优选实施例中,工作流整理器(WFC)通过协调请求事件流、管理任何相关数据(包括临时结果和中间结果)、执行与实现请求相关的规则来帮助实现最重要的NEMO服务请求。各种类型的事务协调器,从关系数据库中的简单事务监控器到Microsoft MTS/COM+中更为常见的监控器,都属于此种功能类型的例子。
在一个实施例中,工作流整理器是一个可编程机制,NEMO节点通过它来编排对服务调用的处理和实现。可以根据特定NEMO节点的特征和要求来定制WFC,而且,经过设计,WFC可以支持各种功能,包括从传统的消息队列到更为复杂的分布式事务协调器。一个相对简单的WFC可能会提供一个接口,用于存储和检索任何与服务有关的消息。在此基础上,它可以支持多种功能,包括:(i)收集服务请求,以提高处理效率;(ii)简单地将服务响应聚合为一个复合响应;(iii)手动编排多个服务请求和服务响应,以创建一个复合服务;(iv)自动编排多个服务请求和服务响应,以创建一个复合服务。
基本的服务交互模式是这样开始的:一个服务请求通过节点的服务适配层到达某个NEMO节点。消息被转交给WSDL消息泵;开始时是WSDL消息泵驱动WFC,接下来消息泵被WFC驱动,以实现请求并返回响应。更复杂的情况是,实现服务请求可能需要多个消息、响应和多个节点协作参与。请求处理规则可以用系统的服务描述语言来表示,也可以用其他服务编排描述标准(例如BPEL)来表示。
消息被交给WFC时,WFC将确定此请求的正确处理规则。根据WFC的实现,可以用固定状态机的形式来表示节点公开的一组服务的服务描述逻辑,也可以用支持处理更为自由的服务处理逻辑表达形式的方式表示。
在优选实施例中,WFC体系结构是模块化和可扩展的,并且支持插件。除了解释服务组合和处理规则外,WFC还需要确定是否在启动服务实现处理生命周期的情况下使用NEMO消息,或者将NEMO消息用作正在进行的事务链中的输入。在一个实施例中,NEMO 消息包括用于完成这些确定工作的ID和元数据。我们还可以对NEMO消息进行扩展,使之包含可能是服务事务所特有的附加信息,方便消息处理。
在后面更为详细的论述中,NEMO系统的各种实施例直接支持通知服务。通知表示在指定的服务接口接收以进行处理的一则消息,它以有意向的支持NEMO的节点为目标。通知还可以包含用于转发信息的一组不同的载荷类型和用于确定通知所选定的节点是否可扩展的条件(包括基于身份的条件和基于事件的条件)。
在一个实施例中,如图9a所示,服务提供NEMO节点910提供一个服务,这个服务需要由其工作流整理器914完成一个编排过程(例如收集和处理其他两个服务提供者生成的结果),以便实现客户端节点940对该服务的请求。
客户端节点940上支持NEMO的应用942发出一个请求调用服务提供者910提供的服务时,工作流整理器914相应地生成消息,(代表应用942)分别向节点920上的服务提供者“Y”922和节点930上的服务提供者“Z”932发出自己的请求。然后,工作流整理器将整理并处理这两个服务提供节点生成的结果,以实现客户节点940发出的原始请求。
或者,所请求的服务可能不需要多个服务提供节点的服务,相反,可能需要服务提供节点与发出请求的客户端节点之间进行多个回合或多个阶段的通信。如图9b所示,当客户端节点940上支持NEMO的应用942发出请求要求调用服务提供者910提供的服务时,工作流整理器914接下来将与客户端节点940进行多阶段的通信,以实现原始请求。例如,工作流整理器914可能生成消息并(通过接入点944)将消息发送给客户端节点940,然后接收和处理响应,并在后继通信过程中生成附加信息(和接收附加响应),最终实现客户端节点940发出的原始请求。
在这个例子里,服务提供者910使用工作流整理器914(可能根据服务请求的特定服务会话ID或事务ID部分)来跟踪它与客户端正处于哪一个操作阶段,以保证正确处理请求。如上所述,可以使用状态机或类似机制或技术来处理这些多阶段的通信950。
图9c描述了一个相对基本的交互的实施例,该交互在服务提供 节点960内部、在工作流整理器914和消息泵965(在该节点的服务适配层内部,没有表示出来)之间发生。如上所述,工作流整理器914处理一个或多个服务请求962,并生成响应964,采用存储和检索机制966维护编排过程的状态。在这个简单的示例中,工作流整理器914能够处理多个服务请求和响应,而且可用相当简单的状态机来实现。
对于更复杂的处理,图9d描述了一个节点体系结构,它可以在进行服务编排时起到驱动作用或被驱动。在这里,该体系结构的功能包括收集多个服务请求、将多个响应聚合为一个复合响应、手动或自动编排多个服务请求和响应以创建一个复合服务。
在图9d中,以工作流整理器914为核心的体系结构支持各种情形。例如,假如外部协调器970理解过程编排的语义(例如,由与服务相关的高级过程描述驱动的业务流程处理语言引擎)或资源使用语义(例如,可以由资源相互关系语义驱动的资源描述框架引擎),那么让NEMO节点将自己的功能和外部协调器970的功能结合在一起,就可以创建功能强大的服务。自定义外部BPL 972和/或RDF 973处理器可以利用外部消息泵975通过手动编排过程966(即人为干预的过程)来执行过程描述。
除了依靠手动驱动的过程(这个过程依靠与NEMO节点的消息泵协同工作的外部协调器)外,还可以创建一个体系结构,在这个体系结构内,模块可以直接与工作流整理器914集成,以支持自动形式的服务协调和编排968。例如,对于常规类型的服务编排模式,例如那些以BPEL和EBXML表示、通过与服务接口相关的Web服务绑定通信的模式,工作流整理器914可以直接由陆续到达的请求和响应消息967的描述和集合驱动。在这种情况下,只有当与给定的编排处理器插件(例如,BPEL 982或EBXML 983)相关的状态机认为时机适当时,才会向消息泵965推入复合响应消息。
下面是一个相对高级的API描述实施例,它是由一个NEMO工作流整理器实施例导出的。
WorkflowCollator::Create(Environment[])->WorkflowCollator——这是一个singleton接口,它返回一个已初始化的WFC实例。可以根据一组可选的环境参数对WFC进行初始化。
WorkflowCollator::Store(Key[],XML Message)->Boolean——这个 API允许调用者通过一组特定键值在WFC内存储服务消息。
WorkflowCollator::RetrieveByKey(Key[],XML Message)->XMLMessage[]——该API允许调用者通过一组指定的键值检索一组消息。返回的消息将不再包含在WFC内。
WorkflowCollator::PeekByKey(Key[],XML Message)->XMLMessage[]——该API允许调用者通过一组指定的键值检索一组消息。返回的消息仍然包含在WFC之内。
WorkflowCollator::Clear()->Boolean——该API允许调用者清除存储于WFC之内的任何消息。
作为相对比较严格的BPEL编排标准的替代,另一个实施例采用了非正式的基于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特定链接是否是信任的,或者要求某些对象被解密。有些必需的信息可能是远程的,这种情况下,主机服务1008可通过服务接入点1014请求网络化服务提供信息。
一DRM引擎1000确定特定操作是允许的,它将表明这一点,并将必要的加密密钥返回给主机服务1008。主机服务1008根据主机应用1002的指令,依靠内容服务1016来获得所需要的内容,并管理对内容的使用。然后主机服务1008可能会根据需要与加密服务1012协作,启动媒体表现过程1010(例如,通过扬声器播放内容、在屏幕上显示内容等)。
图10中的系统体系结构是一个相对简单的示例,它描述了如何在应用中使用DRM引擎,但是DRM引擎还有许多可能用法。例如,在其他一些实施例中,在相对复杂的策略管理系统管理下,DRM引擎可集成到打包应用中。下面将讨论DRM引擎的客户端(内容使用)和服务器(内容打包)应用,包括这些应用依赖的不同类型的DRM相关对象的描述,随后将介绍一个DRM引擎本身内部体系结构的实施例。
如图11所示,DRM引擎1100依赖一个虚拟机即控制VM1110,在多种主机平台上进行内部DRM处理(如执行管理内容访问的控制程序),从而利用主机环境1120(如上所述,下面进行了更详细的论述)与节点的主机应用1130进行交互,并最终与NEMO或其他系统内的节点进行交互。
在一个实施例中,控制VM1110是由DRM引擎1100的实施例使用的虚拟机,以执行用于管理内容访问的控制程序。下面描述了如何将控制VM1110集成到DRM引擎1100的体系结构中,还介绍了控制VM的基本元素,包括其指令集、内存模型、代码模块以及通过系统调用1106与主机环境1120的交互。
在一个实施例中,控制VM1110是一个相对较小的虚拟机,经设计它可以使用多种编程语言来简单实现。它基于一个面向栈的指令集,该指令集实际上按最低要求设计,没有过多地考虑执行速度或代码密度。但是,应理解,如果特定的应用需要考虑执行速度和/或代码密度,可以使用常规技术(如数据压缩)来提高性能。
控制VM1110适合用低级语言或高级语言编写,支持汇编、C和FORTH等语言。也可以容易地实现其他语言的编译器,如Java语言或定制语言等。
控制VM 1110设计为驻留在DRM引擎1100内(包括主机环境1120),而不是直接在处理器或芯片上运行。控制VM 1110通过执行存储在代码模块1102内的指令来运行程序。有些指令可以通过一个或多个系统调用1106来调用在程序外实现的功能;系统调用1106可由控制VM1110实现,也可委托给主机环境1120。
执行模型
控制VM 1110执行存储在代码模块1102中的指令,执行时,这些代码作为载入到内存1104的字节代码流。控制VM 1110维护着一个名为程序计数器(PC)的虚拟寄存器,指令执行时,该计数器递增。VM顺序执行每条指令,直到遇到OP_STOP指令,在调用栈为空时遇到OP_STOP指令,或发生异常。指令跳转被指定为相对跳转(指定为从当前PC值的字节偏移量)或绝对地址。
内存模型
在一个实施例中,控制VM 1110的内存模型相对比较简单。VM内存1104分为数据段(DS)和代码段(CS)。数据段是单一、平面、连续的内存空间,起始地址是0。数据段一般是在主机应用1130或主机环境1120的堆内存内分配的一列字节。对于特定的VM实现,内存空间的大小优选固定为最大值,试图访问内存地址范围之外的地址将导致出错,并终止程序的运行。数据段可能由VM同时载入的多个代码模块1102共享。数据段中的内存可以由内存访问指令访问,该访问可能是32位的,也可能是8位的。32位内存访问可以使用big-endian字节顺序来完成。这里并没有假定VM可见内存与主机管理的内存(主机CPU虚拟内存或物理内存)完全对应。
在一个实施例中,代码段是平面、连续的内存空间,起始地址为0。代码段一般是在主机应用1130或主机环境1120的堆内存内分配的一列字节。
控制VM 1110可以加载多个代码模块,所有代码模块可以共享同一个数据段(每个模块的数据最好载入到不同的内存地址),但是每个代码模块都有自己的代码段(举例来说,最好代码模块1102的 跳转指令不可能导致直接跳转到另一代码模块1102中的代码)。
数据栈
在优选的实施例中,VM具有数据栈的概念,它表示存储在数据段中的32位数据单元。VM维护一个名为栈指针(SP)的虚拟寄存器。在重置后,SP指向数据段的末尾,栈向下增长(数据推入数据栈时,SP寄存器的值减小)。根据引用栈数据的指令,栈上的32位值被解释为32位的带地址整数、32位带符号整数。
调用栈
在一个实施例中,控制VM 1110管理一个调用栈,用于嵌套式子程序调用。内存访问指令不能直接读写被推入栈的值,但是VM在执行OP-JSR指令和OP-RET指令时可以间接使用被推入栈的值。对于给定的VM概要,该返回地址栈的大小最好固定为最大值,这样将允许一定数量的嵌套调用,不能超过这个数量。
指令集
在一个实施例中,控制VM 1110使用相对简单的指令集。即使指令的数量有限,还是可用它们来编写简单的程序。指令集是基于栈的:除了OP-PUSH指令,任何指令都没有直接操作数。操作数从数据栈读取,并且结果被推入数据栈中。VM是32位的VM:本图解实施例中的所有指令都在32位栈操作数上工作,这些操作数表示内存地址或带符号整数。带符号整数用2的补数二进制编码表示。
下面示出了一个实施例中使用的指令集:
Figure GYZ00000134834710401
Figure GYZ00000134834710411
模块格式
在一个实施例中,代码模块1102以原子格式存储,其格式与MPEG-4文件格式中使用的原子结构相同。一个原子包括32位,存储为big-endian字节顺序的4-八位字节,跟随一个4-八位字节类型(通常是对应字母表中字母的ASCII值的八位字节),再之后跟随该原子的载荷(大小-8个八位字节)。
3.7.DRM客户-服务器体系结构:内容使用和打包
如前所述,DRM客户端的使用应用(如媒体播放器)使用DRM内容(例如,播放歌曲和电影等)。DRM服务器端的打包应用(通常驻留在服务器上)打包内容(例如,内容的相关使用和分发权限、密钥等),提供给目标DRM客户端。
图12a描述了一个DRM客户端主体系结构元素的实施例。主机应用1200通过用户接口1210为设备用户(例如,音乐播放器用户)提供服务。用户可能请求访问受保护的内容和随内容接收元数据(如随歌曲本身的音频显示歌手名字和歌曲名称的文本)。
主机应用1200除了与用户接口1210进行交互外,还执行完成客户请求所需的各种功能,这些功能可能包括管理与其他DRM客户端模块(主机应用将某些功能委托给了这些模块)的交互。例如,主机应用1200可能管理与文件系统进行的交互,以提取用户所请求的内容。另外,主机应用最好能够识别受保护内容的对象格式,并向DRM引擎1220发送请求,使其评估做出许可的DRM对象(例如,通过运行相关的控制程序),以确定是否应该授权访问受保护的内容的权限。
如果授权了权限,主机应用1200可能需要验证所要求的签名,并将DRM引擎1220所要求的其他一般性加密功能委托给加密服务1230。DRM引擎1220负责评估DRM对象,确认权限或拒绝权限,并为主机应用1200提供密钥,以解密内容。
主机服务1240为DRM引擎1220提供权限,使之可以访问宿主应用1200管理的数据(以及1200实现的一些库函数)。主机应 用1200与内容服务1250进行交互,以访问受保护内容,并且仅向DRM引擎1220传递需要进行处理的内容。内容服务1250从外部媒体服务器获得内容,并依赖客户的永久存储机制存储和管理内容。
一旦准许访问内容,主机应用1200与媒体再现引擎1260进行交互(例如,通过发送密钥进行交互),以解密内容,并通过客户端的AV输出工具再现内容。DRM引擎1220所需要的某些信息可能混合在内容中,可以通过内容服务1250获得并管理这些信息,其他信息可能需要从外部NEMO DRM服务或其他来源获得。
在优选实施例中,所有加密操作(包括加密、签名验证等)都由加密服务1230来处理,1230通过主机服务1240(1240转发请求)间接地与DRM引擎进行交互。媒体再现引擎1260也可以使用加密服务1230进行内容解密。
现在转到服务端,图12b描述了一个示例DRM服务端打包节点的主体系结构元素的实施例。主机应用1200通过用户接口1210与内容打包者(例如,音乐内容的所有者和发行者)通信。例如,打包者可能会向主机应用1200提供内容和许可信息,这样内容就可以受到保护(例如,加密和设定相关的限制访问权限),并分发给最终用户和中间内容提供节点。
主机应用1200除了与用户接口1210进行交互外,还可以执行多种必要的功能,以实现内容打包者的请求,这些功能包括管理与其他DRM打包模块(有些功能委托给了这些打包模块)之间的交互。例如,它可以管理与一般加密服务1235之间的交互,以加密内容。它还可以创建一个内容对象,这个内容对象包含或引用内容,并包含或引用一个许可(例如,在DRM打包引擎1225创建一个包装许可的DRM对象之后)。可以将元数据与许可相关联,该元数据以人工可读的方式对许可进行解释(例如,以供客户端用户查看)。
如前所述,主机应用1200通过用户接口1210与用户进行交互。主机应用1200负责获取信息,如内容引用信息和打包者想要执行哪些动作等信息(例如将内容绑定给谁)。它还显示与打包过程有关的信息,如发出的许可文本,如果发生错误,将显示错误的原因。主机应用1200需要的某些信息可能需要使用NEMO服务1270(例如,利用诸如验证或成员关系授权等服务)。
在一个实施例中,主机应用1200委托媒体格式服务1255负责管理所有媒体格式操作,如编码转换和打包等。一般加密服务1235负责发布和验证签名,以及加密和解密某些数据等。对这些操作的请求可以在外部发出,或通过主机服务1240由DRM打包引擎1225发出。
在一个实施例中,内容加密服务1237与一般加密服务1235在逻辑上是分开的,因为1237并不知道主机应用1200。在进行内容打包时,内容加密服务由媒体格式服务1225利用一组由DRM打包引擎1225此前发布的密钥驱动(所有这些操作由主机应用1200进行协调)。
3.8.DRM内容保护和管理对象
在一个示意图中,内容提供者使用依赖DRM打包引擎的主机应用创建一组对象,这组对象保护内容并管理内容的使用,包括发送为获取内容加密密钥所必需的信息。术语许可就是用于包括这一组对象。
在优选实施例中,内容及其许可在逻辑上是分开的,但是使用对象ID通过内部引用绑定在一起。内容和许可通常存储在一起,必要的情况下,也可以分开存储。一个许可可以应用于多个内容项,而且任何单个内容项都可以使用多个许可。
图13介绍了这样一个许可的实施例,包括下面将讨论的对象集中各对象之间的关系。请注意,在这个实施例中控制对象1320和控制器对象1330都是签名对象,因此DRM客户引擎可以先验证控制信息来自信任来源,然后才向主机应用提供访问受保护内容的权限。在这个实施例中,除了内容对象1300外,所有对象都是由DRM客户引擎创建的。
内容为象-内容对象1300表示加密内容1304,用唯一的ID1302来帮助实现内容和其相关密钥的绑定。内容对象1300是一个“外部”对象。加密内容1304的格式(如MP4电影文件和MP3音轨等)和存储由主机应用部分根据内容的类型来确定(或者委托给一个服务)。内容的格式还为ID 1302与加密内容1304的关联提供支持。内容打包者的主机应用使用任何可用的加密系统(如使用AES等对称 加密方法)以与格式相关的方式对内容进行加密,并管理内容对象1300。
Contentkey对象——Contentkey对象1310表示加密的密钥数据1314(包括一个唯一的加密密钥,可以选择存储于对象内部),而且有一个相应的唯一ID 1312。密钥数据如果包含在Contentkey对象1310内,它本身最好是加密的,这样它就只能为那些有权解密内容的用户识别。Contentkey对象1310还指明加密这些密钥数据使用的密码系统。这个加密系统称为“密钥分配系统”,我们将在下面详细讨论这些实施例。
控制对象——控制对象1320包括并保护控制程序(例如,控制字节代码1324),控制程序表示用于内容加密和解密的密钥的使用管理规则。它还包括ID 1322,这样它就可以绑定到相应的Contentkey对象。如前所述,控制对象132是签名的,这样DRM客户引擎就可以验证Contentkey 1310与控制对象1320之间的绑定的有效性以及Contentkey ID 1312与加密密钥数据1314之间的绑定的有效性。可选地,控制字节代码1324的有效性可以通过验证控制器对象1330内包含的安全哈希(例如控制哈希1338[如果有])而得到。
控制器对象——控制器对象1330表示密钥与管理其控制的规则之间的绑定,它分别使用ID 1312和1322绑定Contentkey 1310和控制对象1320。控制器对象1330通过控制这些规则对内容的应用来管理受保护内容的使用,也就是说,通过确定由哪个控制对象来管理哪些Contentkey 1310的使用。控制器对象1330还包含它引用的每个Contentkey 1310对象的哈希1336值,以防篡改每个Contentkey对象1310和其相应的加密密钥数据1314之间的绑定。如前所述,控制器对象1330最好是签名的(由拥有允许其签名控制器对象的证书的打包应用,使用公共密钥或对称密钥签名,这一点在下面讨论),以支持验证Contentkey 1310与控制对象1320之间的绑定的有效性
以及Contentkey ID 1312与加密密钥数据1314之间的绑定的有效性。另外,如前所述,控制器对象1330可选地还包含控制哈希望1338,这样就可以得到控制对象1320的有效性,而无需单独验证其签名。
对称密钥签名——在优选实施例中,对称密钥签名是控制器对象 1330最常用的签名类型。在一个实施例中,此类签名是通过计算控制器对象1330的MAC(消息身份验证代码)来实现的,采用的密钥与Contentkey对象1310表示的密钥相同。
公共密钥签名——在优选实施例中,如果控制器对象1330的签名者的身份需要被唯一声明,则需要使用此种类型的签名。这种类型的签名是用公共密钥签名算法实现的,签名采用声明这一对象有效性的主体的私有密钥。使用此类签名时,控制器对象1330中携带的Contentkey绑定信息最好包含Contentkey对象1310中包含的密钥的哈希1336,该哈希同签名私有密钥的指纹信息相关(通常是该私有密钥的哈希)。这种绑定确保了对象的签名者知道用于保护内容的密钥。
保护器对象——保护器对象1340通过控制用于加密和解密内容的密钥的使用,提供对内容的受保护访问。保护器对象1340将内容对象1300绑定到Contentkey对象1310,使受保护内容与其相应的密钥相关联。为了完成此绑定,保护器对象1340包含了引用1342和1344,分别引用内容1300的ID 1302和Contentkey 1310的ID1312。在一个实施例中,保护器对象1340不仅包含应使用哪些密钥来加密一个或多个内容项的信息,而且还包含了应使何种加密算法的信息。在一个实施例中,如果内容引用1342引用多个内容对象1300,Contentkey引用1344可以仍仅引用一个Contentkey对象1310,表明所有的内容项都是使用相同的加密算法和密钥加密的。
3.9.DRM节点和链接对象
图13示出了由DRM引擎为控制对受保护内容的访问而创建的内容保护和管理对象。图14示出了表示系统内的实体(如用户、设备或组)的DRM对象以及这些实体之间的关系。
如前所述,图4示出了一个节点或授权图的概念实施例,授权图描述了这些实体及它们之间的关系,图14示出了实现这个概念图实施例的两种类型的对象:顶点(或“节点”)对象(1400a和1400b)表示实体和实体的属性,链接对象(1420)表示这些节点对象之间的关系。在一个实施例中,DRM引擎通过执行控制程序来促成涉及这些对象的一个或多个使用模式,例如,加密一首歌曲,或者将歌曲与 许可(许可对歌曲向特定个体的分发进行了限制)关联起来。但是,这一实施例中的DRM引擎并没有指明(无论明示还是暗示)与这些对象相关的语义(例如,歌曲可以分发给哪些个体)。
在一个实施例中,这个语义内容(即DRM概要)是在节点对象本身的属性内定义的。DRM概要可以包括对这些实体、各种角色及其所代表的身份的描述,一般用节点属性(1401a和1401b)表示。如前所述,节点1400a和1400b之间的链接1420可能表示各种类型的语义关系。例如,如果一个节点是“用户”,另一个节点是“设备”,链接1420可能表示“所有关系”。如果另一个节点是“用户组”,而不是“设备”,则链接1420可能表示“成员关系”。链接1420在一种情况下可能是单向的,在另一种情况下可能是双向的(例如,表示相同两个节点之间的两个链接时)。
节点对象1400a和1400b一般还具有对象机密性保护非对称密钥对(例如,节点1400a的私有密钥1405a和公共密钥1406a和节点1400b的私有密钥1405b和公共密钥1406b),以限制节点的授权部分的机密信息。节点的机密信息一般用节点的机密性保护公共密钥加密。系统使用Contentkey派生系统分发内容密钥(将在下面详细讨论)时,可选地,内容保护非对称密钥对(例如,节点1400a的私有密钥1403a和公共密钥1403b和节点1400b的私有密钥1403b和公共密钥1403b)可以与链接对象配合使用。另外,还可以使用内容保护对称密钥(例如节点1400a的对称密钥1402a和节点1400b的密钥1402b)对内容项本身进行保护。
如前所述,在一个实施例中,链接对象(如链接1420)表示节点之间的关系。这些关系的语义可以存储在节点属性中(例如,存储在节点1400a的1401a和节点1400b的1401b中),并从链接对象中引用(例如,节点1400a的节点引用1422和节点1400b的节点引用1424)。链接对象还可以有选择地包含加密数据(如密钥派生信息1426),加密数据使链接对象能够用于内容密钥派生,下面将进行介绍。
在一个实施例中,链接对象本身是一个签名对象,以图中的有向边表示,如上述图4所示。如果从一个节点(如节点X)到另一个节点(如节点Y)存在这样一个有向边,则从节点X到节点Y的这 条“路径”表示从节点X“可以到达”Y。其他DRM对象可以使用存在这样的路径的事实作为执行特定功能的一个条件。控制对象在允许对其相关的内容对象进行特定的操作之前,可能需要通过检查确定目标节点是否可到达。
例如,如果节点D是表示想要对内容对象进行“播放”操作的设备,管理该内容对象的控制对象可能需要测试是否可以从节点D到达表示特定用户的特定节点U(例如,检查该用户是否为该设备的“所有者”),只有该条件满足后,才能进行“播放”操作。要想确定节点U是否可到达,DRM引擎可以运行控制程序以确定是否有一组链接对象,可以在节点D和节点U之间建立一个路径(例如,直接或间接的关系)。如前所述,在一个实施例中,DRM引擎并不知道关系的语义;它仅确定是否存在路径,这样就使主机应用(举例来说)能够将此路径解释为有条件授权,从而允许访问受保护内容。
在一个实施例中,DRM引擎在使用链接对象确定在系统节点图中是否存在某路径之前,先对它们进行验证。任何时候链接对象的有效性可能都取决于用于签名链接对象的证书系统的特定特性(下面将进行介绍)。例如,链接对象的“生命周期”可能是有限的,或者根据不同的条件时常废止链接对象或令其重新生效。
另外,在一个实施例中,有些策略负责管理哪些实体可以签署链接对象,哪些链接对象可以被创建,但是这些策略和链接对象的生命周期并不直接由DRM引擎处理。相反,它们可能会利用节点属性信息。为了方便执行某些策略,系统可能提供使用附加的限制检查来扩展标准证书格式的方法。通过这些扩展,能够在用于签署链接的密钥证书上表示出有效性限制,这样就可以在确定链接有效之前,对这些限制条件(例如,与链接相连的节点的类型以及其他属性)进行检查。
最后,在一个实施例中,链接对象可能包含为用户提供节点内容保护密钥的加密运算数据,以用于密钥分配。加密数据除了元数据之外、还包含“起始”节点的私有密钥和/或对称内容保护密钥,这些密钥已经使用“目标”节点的内容保护公有密钥和/或内容保护对称密钥进行了加密。例如,在特定策略下,一个实体被赋予了创建链接设备节点和用户节点的链接对象的能力,这个实体可能要进行检查,以确保它只在设备节点对象(具有指示它们确实表示一个设备的属性)和用 户节点对象(具有指示它们表示一个用户的属性)之间创建链接。
3.10.DRM加密密钥
图15描述了一个DRM密钥分配系统的实施例。如图15所示,这个密钥分配系统所使用的基本规则是使用链接对象来分配密钥,当然,链接对象的主要功能是建立两个节点对象之间的关系。
如前所述,控制对象可能包含一个控制程序,这个控制程序确定所请求的操作是否得到许可。控制程序可能进行检查,以确定是否可以通过一组链接对象到达特定节点。如图15所示的密钥分配系统通过搜索一组链接对象来帮助进行密钥分配,这样执行控制程序的DRM引擎就可以获得密钥。
在一个实施例中,使用密钥分配系统的每个节点都有一个或多个密钥。这些密钥用于加密内容密钥和其他节点的密钥分配密钥。创建用于相同部署中的链接对象包含一些加密数据载荷,DRM引擎处理链接链时,这些载荷使得能够派生出密钥信息。
由于节点和链接携带密钥,对于给定的一组链接(例如,从节点A到节点B,最后到节点Z),任何可以访问节点A的私有密钥的实体也可以访问节点Z的私有密钥。由于实体可以访问节点Z的私有密钥,因此也可以访问任何使用这些密钥加密的内容密钥。
参与密钥分配系统的节点对象包含密钥作为它们的数据中的一部分。如图15所示,在一个实施例中,每个节点(1500a、1500b和1500c)都有三个密钥。
么共密钥Kpub[N]-这是公共密钥加密程序所使用的公共/私有密钥对中的公共部分。在一个实施例中,由于该密钥(节点1500a中的密钥1505a、节点1500b中的1505b和节点1500c中的1505c)与证书(下面将讨论)一起提供,因此其身份凭证可通过想要用加密方式将机密信息与密钥进行绑定的实体得到验证。
私有密钥Kpriv[N]——这是公共/私有密钥配对的私有部分。管理节点的实体负责确保该私有密钥(分别是在节点1500a、1500b、及1500c内的密钥1515a、1515b、及1515c)得到保密。因此,在一个实施例中,该私有密钥将与其余的节点信息分开保存与传送。
对称密钥Ks[N]——这个密钥与对称加密程序一起使用,下面将进行介绍。因为这个私有密钥(节点1500中的密钥1525a、节点1500b中的密钥1525b和节点1500c中的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”意味着使能够访问该节点的私有密钥的实体可以使用该密钥。在一个实施例中,绑定是通过使用以下方法中的一种或两种方法来加密密钥而完成的:
Public Binding:创建一个包含Ep(Kpub[N],CK)的Contentkey对象
Symmetric Binding:创建一个包含Es(Ks[N],CK)的Contentkey对象
在这个实施例中,可能的情况下优选使用对称绑定,因为它使用了一种在接收实体上计算密度比较小的方法。但是,创建Contentkey对象的实体(例如,内容包装器)未必总是能够访问Ks[N]。在这种情况下,可以使用公共绑定(这时Kpub[N]应该可用),因为它不是机密信息。通常令Kpub[N]对于需要赋予Contentkey的实体可用,结合能够由实体检查(以便确定Kpub[N]是否确实是可以信任的节点的密钥的)的证书,以便按照某些议定的策略处理Contentkey。
为了使实体能够访问所有可到达节点的分配密钥,在一个实施例中,链接对象包含了一个“载荷”。这个载荷允许能够访问链接的“起始 节点”的私有密钥的实体也能够访问“目标节点”的私有密钥。按照这种方式,实体可以解密任何可到达节点的Contentkey。
现在转到图15,链接节点1500a到节点1500b的链接1530a包含一个载荷,这个载荷是通过用节点1500a的对称密钥1515a来加密节点1500b的私有密钥1515b和1525b而创建的,如果1515a不可用(如,因为其机密性而不可用),则使用节点1500a的公共密钥1525a。类似地,链接节点1500b到节点1500c的链接1530b包含一个载荷,这个载荷是通过利用节点1500b的对称密钥1515b来加密节点1500c的专用密钥1515c和1525c而创建的,如果1515b不可用,则使用节点1500b的公共密钥1525b。
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]的数据结构。
公共派生信息用于向任何可以访问节点A的私有密钥Kpriv[A]的实体转发节点B的私有密钥Ks[B]和Kpriv[B]。对称派生信息用于向任何可以访问节点A的对称密钥Kpriv[A]的实体转发节点B的私有密钥Ks[B]和Kpriv[B]。
因此,对于密钥链1550,可以访问节点1500a的私有密钥(私有密钥1515a和对称密钥1525a)的实体使DRM引擎能够使用这些私有密钥1560作为密钥链1550中的“第一个链接”(产生其余链接的起始点)。Scuba密钥1560用于解密链接1530a内的内容密钥对象1555a(如果通过公共密钥1505a的公共绑定被使用,则应使用私有密钥1515a进行公共派生,或者,如果通过对称密钥1525a的对称绑定被使用,则应使用对称密钥1525a进行对称派生),从而产生密钥链1550之中的下一个链接,即节点1500b的机密密钥(私有 密钥1515b和对称密钥1525b)。接下来DRM引擎使用这些密钥1570解密链接1530b内的内容密钥对象1555b(如果通过公共密钥1505b的公共绑定被使用,则应使用私有密钥1515b进行公共派生,或者,如果通过对称密钥1525b的对称绑定被使用,则应使用对称密钥1525b进行对称派生),从而产生密钥链1550之中的最后一个链接,即节点1500c的机密密钥(私有密钥1515c和对称密钥1525c)。
由于,在一个实施例中,DRM引擎可以按照任何顺序处理链接,它可能不会在处理链接时进行密钥派生(例如,因为链接的“其始”节点的密钥还没有被派生)。在这种情况下,链接被保存下来并在此类信息可用时(例如,在“终端”节点内处理链接时)被再次处理。
3.11.DRM证书
如前所述,在一个实施例中,证书用来在决策前(基于这些密钥所创建的数字签名),检查与这些密钥相关的凭证。在一个实施例中,可以利用现有信息(一般以证书标准元素的形式,如有效期、名字等)支持可支持多重证书技术。除了这些标准元素外,可通过编码增加附加约束,限制已认证密钥潜在的使用。
在一个实施例中,将密钥使用扩展作为证书编码过程的一部分,完成这一操作。在扩展中编码的信息可让DRM引擎确定已签署某特定对象的密钥是否被授权用于该目的。例如,某个特定密钥可能具有一个证书,该证书只允许它签署某种链接对象,即其链接从具有特定属性的节点到具有另一特定的属性的节点的链接对象。
用来表达典型证书的基本技术并不能表达这样的约束,因为它的语义并不知道链接和节点之类的元素。在一个实施例中,这样的特定约束因此被转化为基本证书的密钥使用扩展,包括“使用类别”和相应的“约束程序”。
使用类别规定了密钥有权签署何种类型的对象。约束程序表达基于环境的动态条件。在一个实施例中,尽管密钥使用扩展表达式委托给DRM引擎来进行评价,但验证此类证书有效性的验证者也必需理解相关的语义。仅在执行程序并产生成功结果后,该证书才被认作是有效的。
在一个实施例中,约束程序的作用是返回一个Boolean值,例如 “true”表示符合约束条件,“false”表示不符合约束条件。控制程序也能访问某些可以用来帮助做出决策的环境信息。可用的环境信息取决于要求证书验证时由DRM引擎做出的决策类型。例如:在使用某一链接对象信息前,DRM引擎可能验证已签署该对象的密钥的证书,检查该证书是否允许此密钥用于那些目的。执行约束程序时,DRM引擎的环境已经填充了与此链接属性以及此链接引用的节点属性相关的信息。
在一个实施例中,嵌入在密钥使用扩展中的约束程序被编码成为一个代码模块(如前所述)。此代码模块最好导出一个以上的入口点,称为,如:
“EngineName.Certificate.<Category>.Check”,这里Category是指需要进行检查的证书种类的名称。验证程序所要的参数将在调用入口点前,推入栈。推入栈的参数类型和数目取决于进行验证的证书扩展的类别。
4.系统操作
4.1.基本节点交互
讨论完NEMO系统主要体系结构元素的各类实施例(包括DRM应用环境中的实施例)后,现在我们转至NEMO系统操作,即在NEMO节点内和节点间的事件顺序,这些节点是对特定应用功能进行分层的基础。
在一个实施例中,在NEMO节点调用特定应用功能前,需要经历初始化和授权的过程。节点首先试图发现所需的服务(通过请求、注册、通知等),然后获得使用那些服务的授权(如通过确定这些节点是可信任的并且符合相关服务提供商的策略)。
该过程如图16所示。图16说明了服务提供者1600(在该实施例中,具有服务提供节点1610和授权节点1620之间共享的功能)和服务请求者1630(如服务的客户端用户)间的基本交互。注意该交互不需要是直接交互。在服务请求者1630和服务提供者1600间可能存在任意个中间节点1625。该过程的基本步骤(详述见下)将从客户服务请求者1630和服务提供者1600的角度进行论述。
从服务请求者1630的角度看,事件逻辑流如图16所示:
服务发现——在一个实施例中,服务请求者1630发出服务发现请求,以便找到能提供所需服务的任何支持NEMO的节点,获取所支持的服务绑定的相关信息,从而访问相关服务接口。服务请求者1630可能会选择缓存关于所发现服务的信息。请注意,用于NEMO节点间服务发现的接口/机制正好是某个NEMO节点选择实现和公开的另一服务。服务发现流程的详述见下,其中包括其他形式的通信,如服务提供者向注册的服务请求者发出的通知。
服务绑定选择——一旦找到了候选服务提供节点,基于特定的服务绑定,请求节点可选定(向其发送请求)一个或多个服务提供节点。
与服务提供者进行的关于可接受信任关系的协商-在一个实施例中,在两个节点进行安全通信前,它们必须能够建立进行安全通信所需的信任关系。这将包括交换一些完整性保护封套(这些封套可用于确定身份)中的兼容信任凭证(例如X500证书、令牌等);和/或基于双方都信任的证书建立安全信道,如SSL信道。在某些情况下,这些凭证的交换和协商可能是服务接口绑定的隐式属性(例如如果将接口公开为网络服务,使用了WS-I XML协议,该隐式属性是WS-Security;或是两个已知节点间的SSL请求)。在其他情况下,信任凭证的交换和协商可以是一个明确的独立步骤。NEMO提供了标准和灵活的框架,允许节点建立进行通信的信任信道。根据节点的属性和交互中所涉及的服务属性,由给定节点来决定与其他NEMO节点交互所需要的凭证,并判断它是否信任一个给定节点。在一个实施例中,NEMO框架利用现有的和新兴的标准,特别是与安全相关的数据类型和协议领域中的标准。例如,在一个实施例中,框架将支持使用SAML描述由服务请求者向服务提供者给出的凭证(当服务请求者想调用服务时),以及使用SAML作为表示授权查询和授权响应的方式。
请求消息的创建——下一步骤是为请求节点1630创建对应所需服务的正确请求消息。该操作可能被服务接入点隐藏。如上所述,服务接入点提供在NEMO框架中与服务提供者交互的抽象和接口,并且可能隐藏特定服务调用问题,如至服务消息映射的当地接口、对象序列化/反序列化、对兼容消息格式的协商、传输机制或消息路由问题等。
请求的发送——一旦请求的消息创建完毕,消息将被发送至目标服务提供节点,如节点1610。根据服务绑定和/或请求客户端的优选设置,请求可采用同步/异步RPC或面向消息的通信方式。与服务的交互可由服务消息的传输和处理来直接完成,或透过NEMO服务接入点由更多的本地接口来实现。
接收响应消息——发出请求后,请求节点1610在回复中收到一个或多个响应。根据服务接口绑定的规定和请求节点1610的优选设置,可采用RPC式响应或通知消息等多种方式来返回回复。如前所述,请求和回复可通过其他中间节点1625路由至它们的目标节点,这些中间节点自身也可能提供一些功能,包括:路由、信任协商、整理和关联功能等。在本实施例中所有服务都是在同一个相容框架内描述、发现、授权、绑定和交互的“标准”NEMO服务。服务接入点可能会隐藏源自节点的消息级抽象。例如,从节点的角度看,服务调用可能看起来像带一组简单固定参数的标准函数调用。
对响应的验证(关于协商后的信任语义)——在一个实施例中,请求节点1630验证响应消息,以确认该消息遵守了它和服务提供节点1610间协商的信任语义。这个逻辑通常完全封装在服务接入点内。
对消息载荷的处理——最后,根据(特定应用)消息载荷类型和内容进行任何合适的处理。
以下是从服务提供者1600的角度来看的事件逻辑流程(有某种近似):
确定支持服务——首先要确定是否支持请求的服务。在一种实施例中,NEMO机构并不硬性规定一个服务接口如何映射到服务的的方式或粒度。在最简单的情况下,一个服务接口明确地映射到一个特定服务,绑定至该接口和调用该接口的动作就等于支持该服务。但是在某些情况下,一个单一的服务接口可能会处理多种类型的请求,或者某一类型服务可能会包含另外的属性,在确定该节点是否真的支持需要的功能之前必须采样检测这些属性。
与服务请求者协商可接受的信任关系——在某些情况下,服务提供者1600有必要确定它是否信任请求节点1630,并建立一条信任通信信道。这一过程已在上边详述。
将授权请求发送至授权服务接口访问权限的节点——服务提供 节点1610随后确定请求节点1630是否有权访问该服务,以及访问的条件如何(如果有权访问)。这一决定可以根据本地信息或一个本地支持的授权决定机制作出。如果本地不支持,服务提供节点1610会把授权请求发送至一个已知的管理服务的NEMO授权服务提供者(例如,授权节点1620),以便确定服务提供节点1610是否有权访问所请求的服务。在很多情况下,授权节点1620和服务提供节点1610将是同一个实体,在这种情况下,授权请求的发送和处理是通过轻量级服务接口绑定(例如一个C函数入口点)调用的本地操作。然而,我们在此重申,既然这一机制本身只是一个NEMO服务,那么就有可能做到完全分布式的实现。授权请求可以标明与NEMO节点本身相关的识别信息和/或属性,或者有关与该节点关联的用户和/或装置的信息。
收到授权响应时的消息处理——一旦收到授权响应,如果请求节点1630获得授权,服务提供者1600就会执行必要的处理来实现请求。否则,如果请求节点1630没有获得授权,即可生成一条适当的“授权请求被拒”响应消息。
返回响应消息——然后,依据服务接口绑定及请求节点1630的首选设置,采用多种通信方法(包括RPC式响应或通知消息)中的一种方式返回响应。此处重申,请求与响应可以如上所述经由其他中间节点1625路由到其目标节点,而此类中间节点本身可能会提供一系列服务,包括路由、信任协商、整理及关联等功能。一个中间节点1625所提供的必要服务的例子可能是将消息传递到一个能够以请求节点1630已知的方式发送消息的通知处理节点。而“增值”服务的例子可能是例如赠券服务,该服务在已知请求节点1630意向的前提下,将响应与赠券相关联。
4.2.通知
如上所述,有些NEMO实施例支持异步和同步RPC通信模式,其中客户特别发出一项请求、然后等待响应或通过收回凭证定期检查是否有响应;除此而外,还支持一种基于通知概念的纯消息型通信模式。在一个实施例中,下列元素构成支持这一通知概念的数据和消息类型:
通知——一个以意向端点节点为目地的、包含指定类型载荷的消息。
通知意向条件——用以确定某一特定节点是否会接受某一给定通知的条件。通知意向条件可能包括基于特定类型身份(例如节点ID、用户ID等)、事件(例如节点发现、服务发现等)、近似性分组(例如新爵士音乐俱乐部内容),或一般类别(例如广告)等意向条件。
通知载荷——按类型划分的通知内容。载荷类型包括从简单文本消息到更为复杂的对象。
通知处理程序服务接口——可以接收通知的服务提供者接口类型。该服务提供者亦描述与该接口相关的通知意向条件,以及可接受的载荷类型。支持此种接口的节点可能是通知的最终目的地或一个中间处理端点。
通知处理器服务——一种能够把通知与意向节点相匹配、根据某种策略来传递通知的服务。
通知发出者——一个以若干意向节点和/或中间处理节点为目的地发送通知的节点。
通知、通知意向条件以及通知载荷最好是可扩展的。此外,通知处理程序服务接口最好是与任何其他NEMO服务接口一样,受到同一授权过程的支配。因此,即便某一特定通知在意向条件和可接受载荷方面相匹配,一个节点还是可以根据某些与通知的中间发送者或通知起源相关的一些相关接口策略来拒绝接收某一通知。
图17a描绘了一组通知处理节点1710发现支持通知处理器服务的节点1715和1720的情况。节点1720在其服务描述中指定其通知意向条件,以及可接受的通知载荷类型。
图17b描绘了通知是如何发送的。任何节点均可作为通知的起源以及处理器,并且可以负责将通知发送给支持通知处理器服务的节点1720。因此,节点1710a可以作为起始通知处理节点;或者将此功能由节点1710c(通知起源)和节点1710b(通知处理器)分担。另外,还可以有另一个节点(没有表示出来)负责通知的传递。选择处理来自外部通知发出节点的通知的通知处理器可与一个商业性通知处理引擎(例如微软通知服务)集成,以提高效率。
4.3.服务发现
为使用NEMO服务,NEMO节点首先需要了解这些服务。一种NEMO实施例支持三种动态服务发现机制,如图18a-c所示。
客户端驱动——一个NEMO节点1810a(如图18a)向支持“服务查询”服务接口1815a的某组目标节点(例如1820a)明确发出一个请求,询问目标节点是否支持指定的一组服务。如果请求节点1810a得到授权,服务提供节点1820a就会发送一个响应,表明它是否支持所请求的接口和相关的服务接口绑定。这是当节点公开一些服务时将支持的较为通用的接口之一。
节点注册——一个NEMO节点1810b(如图18b)可以将其描述(包括它所支持的服务)向其他节点(例如服务提供节点1820b)注册。如果一个节点支持该接口1815b,它就会接受来自其他节点的请求,并根据某种策略将这些描述缓存起来。然后,这些节点描述随后就可以供接收节点或向已经缓存描述的节点进行服务查询的其他节点直接使用。作为P2P注册的替代方案,一个节点也可利用一个公共注册中心,例如一个UDDI(统一发现、描述和集成协议)标准注册中心来找到服务。
基于事件的——若干节点(如图18c中的节点1810c)向意向节点1820c(“通知可知”和之前已表明其意向)发出通知1815c,表明状态变化(例如节点活动/可用),或一个节点宣称它支持某种特定的服务。通知1815c可包含对该节点及其服务的详细描述,或者仅包含与该事件相关的节点的ID。意向节点随即可以选择接受并处理该通知。
4.4.服务授权与信任的建立
如上所述,在一个实施例中,在NEMO节点允许访问所请求的服务之前,它首先必须确定请求节点是否有权访问该服务,以及请求节点在何种条件下有权访问该服务。访问权限是基于服务请求者与服务提供者之间交互的信任环境的。如下文将要讨论的,即便一个节点证实它是可信的,服务提供节点仍然可能要求它满足一个指定策略,才能允许访问其某一个或某些特定的服务。
在一个实施例中,NEMO并不规定一组任意节点在确定彼此是 否互相信任时采用的具体要求、条件或决策逻辑。不同节点的信任语义可能会截然不同。相反,NEMO提供了一套标准工具集,使各节点可以协商相互可以接受的信任关系。NEMO在确定和建立节点间信任关系过程中,支持节点之间交换用于建立信任环境的凭证(和/或相关信息)。这种与信任有关的凭证可以使用多种不同的模型交换,其中包括:
服务绑定属性——这是一种将信任凭证作为服务接口绑定的一部分进行隐式交换的模型。例如,若一个节点1920a(如图19a)以SSL上的HTTP Post的形式公布一个服务,或者将一个服务公布为要求WS-Security XML签名的Web服务,那么这一服务绑定的实际属性就可以与一个请求节点1910a交换与信任有关的所有必要的凭证1915a。
请求/响应属性——这是一种通过请求节点1910b与服务提供节点1920b之间的WSDL请求和响应消息(参见图19b)交换信任凭证的模型,其中也可以将凭证作为消息1915b的属性。例如,数字证书可以附加在请求和响应消息内,一起传送,而且可用于建立信任关系。
显式交换——这是一种通过服务提供者接口(如图19c中1915c)显式交换信任凭证的模型,服务提供者接口允许查询某一特定节点所包含的、与信任凭证有关的信息。一般来说,这是最复杂的模型,通常要求一个单独的往返会话,才能在请求节点1910c与服务提供节点1920c之间完成凭证交换。该服务接口绑定本身即提供一条相互可接受的信任信道用于显式凭证交换。
除了这些基本模型以外,NEMO还可支持这些不同方式的组合。例如,与一个半信任服务绑定相关的通信信道可用于更直接地引导其他与安全有关的凭证的交换,或者直接交换与安全有关的凭证(可能具有某种固有的完整性)并使用它们建立一条与某些服务接口绑定相关联的安全通信信道。
如上所述,不同实体的信任模式语义和建立信任的过程可能会有所不同。在某些情况下,可能不需要节点之间的相互信任。这种动态异类环境要求一种能够提供一套通用工具的灵活模型,这些工具要允许不同的实体协商环境相关的信任语义。
4.5.由策略管理的访问
在一个实施例(如上所述)中,服务提供节点在允许请求节点访问一种资源之前除了要求建立信任环境之外,还可能要求请求节点满足与该资源相关的一种策略。为此目的而使用的策略决定机制可能是本地的和/或私有的。在一个实施例中,NEMO为支持此功能提供一种一致而灵活的机制。
作为服务描述的一部分,我们可以指定某些特定NEMO节点为“授权”服务提供者。在一个实施例中,一个授权服务提供节点实现一个用于处理并响应授权查询请求的标准服务。在允许访问服务接口之前,目标服务提供者需要将一个“授权”查询请求发送到任何此服务的授权节点,而且只有当一个或若干此类节点(或预先指定的节点组合)响应,表明允许该访问时,才能允许该访问。
如图20a所示,请求节点2010与服务提供节点2020之间交换消息2015(包括对某一特定服务的初始请求)。然后服务提供节点2020确定请求节点2010是否有权调用该服务,并因而与管理对所请求的服务的访问的授权节点2025交换授权消息2025(包括对这些节点的初始授权请求2030)。随后,服务提供节点2020根据所收到的响应,处理并返回适当的服务响应,或者返回一个响应,表明访问被拒。
这样,授权服务允许一个NEMO节点扮演策略决定点(PDP)的角色。在一个优选实施例中,NEMO不参与策略管理系统;它不硬性规定一个授权节点如何依据授权查询作出授权决策。然而,为互操作性起见,授权请求和响应最好能遵循某种标准,并能做到充分可扩展,以携带灵活多样的载荷,这样它们就可以适应不同策略管理系统条件下的不同类型的授权查询请求。在一个实施例中,至少为两种授权格式提供支持:(1)一种简单格式,使用某种最小的通用的命名标准(例如输入、简单请求者ID、资源ID和/或动作ID)提供非常简单的封套,以及(2)标准的“安全声明标记语言(SAML)格式封装一个授权查询。
在一个实施例中,授权节点必须识别和支持至少一种预先定义的“简单”格式并能够将其映射到该授权节点上存在的任何本地策略表达格式。对于其他格式,如果授权节点不能处理或理解授权查询请求 的载荷,则返回一个适当的错误响应。扩展可能包括节点就授权查询的可接受格式进行协商的能力,以及节点通过查询确定指定授权服务提供节点支持何种格式的能力。
4.6.基本数字权限管理(DRM)节点交互
再次回到一个DRM应用的特定NEMO实例,图21是DRM节点(或顶点)图,可用来说明DRM节点之间的交互及其相互关系。考虑下面的情形,其中便携式设备2110是一个内容重放设备(例如iPod1)。Nip1是代表这一设备的节点。Kip1是与Nip1相关联的内容加密密钥。“用户”是该便携式设备的拥有者,Ng是代表该用户的节点。Kg是与Ng相关联的内容加密密钥。
PubLib是一个公共图书馆。Np1代表该图书馆的成员,Kp1是与Np1相关联的内容加密密钥。ACME代表所有ACME制造的音乐播放器。Namp代表设备的类别,Kamp是与此组相关联的内容加密密钥。
L1是一个从Nip1到Ng的链接,意味着该便携式设备属于该用户(并可访问用户的密钥)。L2是一个从Ng到Np1链接,意味着该用户是公共图书馆的成员(并可访问它的密钥)。L3是一个从Nip1到Namp的链接,意味着该便携式设备是一台ACME设备(仅有成员身份,因该公司没有密钥)。L4是一个从Np1到Nap1的链接,而Nap1是代表全体公共图书馆的节点(并可访问全组的密钥)。
C1是一个由公共图书馆供其成员使用的电影文件。Kc1是一个用以为C1加密的密钥。GB[C1](未显示)是C1的管理信息(例如,用于管理对该内容的访问的规则和相关信息)。E(a,b)表示用密钥“a”来加密“b”。
为说明起见,假定需要制定一条规则,使设备只要满足下列条件即可播放内容C1:(a)该设备的拥有者是图书馆的成员,而且(b)该设备是由ACME制造的。
内容C1是用Kc1来加密的。创建规则程序以及加密内容密钥RK[C1]=E(Kamp,E(Kp1,Kc1))。规则程序和RK[C1]都可以纳入该内容的管理模块GB[C1]。
该便携式设备接收C1和GB[C1]。例如,此二者均可打包在同 一文件中,或分别接收。便携式设备在用户购买后首次安装设备时即接收L1。在用户向公共图书馆支付收视费时便携式设备即接收L2。便携式设备在制造时接收L3(例如L3是内置的)。
便携式设备从L1、L2和L3可以检查出Nip1有一条通向Ng(L1)、Np1(L1+L2)和Namp(L3)的图路径。便携式设备打算播放C1。于是便携式设备运行从GB[C1]中找到的规则。该规则可以检查Nip1是否确实是一ACME设备(到Namp的路径),并属于公共图书馆的成员(至Np1的路径)。因此,规则返回“是”,以及所定列表(Namp、Np1)。
便携式设备用L1计算出Kg,然后用L2从Kg计算出Kp1。便携式设备还使用L3计算出Kamp。该便携式设备将Kp1和Kamp应用于GB[C1]中找到的RK[C1]并计算出Kc1,然后用Kc1来解密并播放C1。
如同上例所示,当节点密钥是对称密钥时,内容打包者需要有权访问它想要将内容“绑定”于其上的节点的密钥。要实现这一点,可创建一个代表打包者的节点,以及连接该节点与它要将规则绑定于其上的节点之间的链接。例如,这一点亦可通过一项服务“带外”实现。但在某些情况下,采用对称密钥不可能,也不实际。这种情况下,可以向需要绑定的节点分配一个密钥对而无需共享知识。此时,打包者可使用目标节点的公共密钥将内容密钥加密,从而把内容密钥绑定到这个节点。欲获得解密密钥,客户端须有权通过到该节点的链接访问节点的私有密钥。
在最一般的情况下,用于规则的节点和用于计算内容加密密钥的节点不必是同一个。使用同一节点是很自然的,因为管理内容的规则和用来加密内容的密钥之间关系密切,但使用同一节点不是必需的。在一些系统中,若干节点可用于内容保护密钥,但不用于表示成员关系条件,或正相反。但在某些情况下,可以使用两组节点,一组用于规则,另一组用于内容保护。例如,一条规则可能说所有Np1组的成员均可访问内容C1,但是内容密钥Kc1可能不受Kp1保护,却受代表所有公共图书馆、不单是Np1的节点Nap1的节点密钥Kap1保护。或者一条规则可能说你必须是Namp的成员,然而内容加密密钥却只绑定到Np1。
4.7.DRM虚拟机(VM)的操作
上面有关图21的讨论描述了一个DRM系统在高层次(节点和链接)的操作,包括内容管理策略的建立和执行。图22所示为一个用以执行这样的内容管理策略的建立和执行的DRM引擎的VM的示例代码模块2200。
图22显示的示意性代码模块2200包括以下4个主要元素:
pkCM Atom:该pkCM Atom 2210是顶级代码模块单元,包含一个次级单元序列。
pkDS Atom:该pkDS Atom 2220包含一个可载入数据段的内存映像。该单元的载荷是一个原始八位字节数值序列。
pkCS Atom:该pkCS Atom 2230包含一个可载入代码段的内存映像。该单元的载荷是一个原始八位字节数值序列。
pkEX Atom:该pkEX Atom 2240包含一个导出项列表。每一个导出项的组成部分有:名称,以8位名称长度编码,随后是名称的字符,包括一个结尾的0,接着是一个32位的整数,代表该指定项的字节偏移(这是相对储存于pkCS Atom单元中的数据的起点的偏移)。
4.7.1.模块载入器
在一种实施例中,控制VM负责载入代码模块。当一个代码模块被载入时,编码于pkDS Atom 2220之中的内存映像被载入到数据段中的一个内存地址。该地址是由VM载入器选择的,并存储于DS的伪寄存器内。编码于pkCS Atom 2230之中的内存映像被载入到代码段的一个内存地址。该地址是由VM载入器选择,并存储于代码段的伪寄存器内。
4.7.2.系统调用
在一种实施例中,控制VM程序可以调用在其代码模块的代码段以外实现的功能。这是通过使用OP_CALL指令来实现的,该指令带有一个指定系统调用号的整数栈操作数。根据该系统调用,该实现可能是位于另一不同代码模块(例如公用图书馆)中的控制VM字节代码例程,由VM以VM本地执行方式直接执行,或者委托给 一个外部软件模块,例如VM的主机环境。
在一种实施例中,指定了几个系统调用号:
SYS_NOP=0:这一调用是非操作调用,它只是返回(并无操作),主要用于测试VM。
SYS_DEBUG_PRINT=1:打印出一串文本以便调试输出。这一调用会得到一个单一栈自变量,指定包含所要打印之以零位终止的字符串的内存位置的地址。
SYS_FIND_SYSCALL_BY_NAME=2:确定VM是否执行一个指定系统调用。如是的话,将系统调用号返回到栈上;否则返回数值-1。这一调用会得到一个单一栈自变量,指定包含所请求之以零位终止的系统调用名称的内存位置的地址。
4.7.3.系统调用号分配
在一种实施例中,控制VM保留0到1023系统调用号用于强制性系统调用(VM的所有概要必须执行的系统调用)。
系统调用号16384到32767可供VM动态分配(例如由SYS_FIND_SYSCALL_BY_NAME返回的系统调用号可由VM动态分配,而且在所有VM实施例中不必都是同样号码)。
4.7.4.标准系统调用
在一个实施例中,提供了几个标准系统调用以便于编写控制程序。这种标准系统调用可能包括旨在从主机获得一个时间戳的调用、确定一个节点是否可访问的调用和/或类似者。系统调用最好具有动态确定的号码(即其系统调用号可通过调用系统调用SYS_FIND_SYSCALL_BY_NAME、并且将其名称作为传递的参数而获得)。
4.8.DRM引擎接口与主机应用之间的接口
下面是一些由一个示意性DRM(客户端使用)引擎提供给主机应用的接口类型的示例性高层次描述:
SystemName::CreateSession(hostContextObject)→Session
创建一个针对一个主机应用环境的会话。环境对象由DRM引擎 用来对该应用进行回调。
Session::ProcessObject(drmObject)
当主机应用遇到媒体文件中可以识别为属于DRM子系统的某些类型实体时,即调用此函数。此类实体包括:内容控制程序、成员身份令牌等等。这些对象的语法和语义不为主机应用所知。
Session::OpenContent(contentReference)→Content
当需要与多媒体内容文件交互时,主机应用调用此函数。DRM引擎返回一个内容对象,该对象随后可以用来获得关于内容的DRM信息,并与此信息交互。
Content::GetDrmInfo()
返回关于内容的DRM元数据,其他情况下此种数据不在文件的一般元数据中出现。
Content::CreateAction(actionInfo)→Action
当欲与一个内容对象交互时,主机应用调用此函数。参数actionInfo规定应用需要执行的操作类型(例如播放),以及任何相关参数(如有必要)。该功能返回一个操作对象,该对象可随后用来执行该操作并获得内容密钥。
Action::GetKeyInfo()
返回解密子系统解密内容所必需的信息。
Action::Check()
检查DRM子系统是否将授权执行这一操作(亦即Action::Perform()是否会随之而来)。
Action::Perform()
根据管理此操作的规则的规定,执行操作以及(利用其副作用)执行后续操作。
下面是一些由一个说明性主机应用提供给DRM(客户使用)引擎的接口类型的示例性高层次描述:
HostContext::GetFileSystem(type)→FileSystem
返回一个虚拟FileSystem对象,DRM子系统对其有独占访问权。该虚拟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::Encrypt(data)
上面提到的Cipher对象,用于加密数据。
Cipher::Decrypt(data)
上面提到的Cipher对象,用于解密数据。
HostContext::CreateDigester(digesterType)→Digester
创建一个DRM子系统可用来计算某些数据的安全哈希的Digester对象。将定义一组最低数量的解析类型。
Digester::Update(data)
上面提到的用于计算安全哈希的Digester对象。
Digester::GetDigest()
上面提到的用于获得由DRM子系统计算的安全哈希的Digester对象。
下面是一些由一个说明性DRM(服务端打包)引擎提供给主机应用的接口类型的示例性高层次描述:
SystemName::CreateSession(hostContextObject)→Session
创建一个针对主机应用环境的会话。环境对象由DRM打包引擎用来对该应用进行回调。
Session::CreateContent(contentReferences[])→Content
主机应用会调用该函数以创建一个在后续过程中将与许可对象相关联的内容对象。在contentReferences数组中具有不止一个内容引用 表明这些内容是绑定在一起的(例如一个音频和一个视频轨道),而且将其作为一个不可分割的整体而对其发放许可。
Content::SetDrmInfo(drmInfo)
该drmInfo参数具体说明将要发布的许可的元数据。该结构将被读出,并将作为指导原则,以便把许可计算为可供VM之用的字节代码。
Content::GetDRMObjects(format)→drmObjects
当主机应用准备接受由DRM打包引擎创建的drmObjects时,主机应用调用此函数。其中format参数将指明这些对象预期的格式(例如XML或二进制单元)。
Content::GetKeys()→keys[]
当主机应用需要加密内容的密钥时,调用此函数。在一个实施例中,每一个内容引用均有一个密钥。
下面是一些由一个说明性主机应用提供给DRM(服务端打包)引擎的接口类型的示例性高层次描述:
HostContext::GetFileSystem(type)→FileSystem
返回一个虚拟FileSystem对象,DRM子系统对其有独占访问权。该虚拟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打包引擎可用来计算某些数据的安全哈希的Digestor对象。
Digester::Update(data)
上面提到的用于计算安全哈希的Digestor对象。
Digester::GetDigest()
上面提到的用于获得由DRM子系统计算的安全哈希的Digestor对象。
HostContext::GenerateRandomNumber()
生成可以用于生成一个密钥的一个随机数字。
5.服务
5.1.概述
从体系结构和操作角度对NEMO/DRM系统做过说明之后,我们现将注意转向对可用来实现系统功能的众多服务、数据类型及有关对象的集合示例(“概要”)。
如上所述,NEMO结构的一个优选实施例中采用了一种灵活而可移植的方式来描述与服务调用相关联的请求与响应、框架内所用数据类型、消息封装、以及NEMO框架内公开和使用的数据值的语法。WSDL 1.1及以上版本具有充分的灵活性,去描述和表示各种类型的服务接口和调用模式,并具备足够的抽象性,去适应通过形形色色的通信协议与各种端点节点的绑定。
在一个实施例中,我们把概要定义为WSDL中定义的、主题上相关的一组数据类型和接口。NEMO区分“核心”概要(包括支持基本的NEMO节点交互模式和基础设施功能所必需的基本数据类型和服务消息的集合)与针对应用的概要,例如一个DRM概要(描述可以用NEMO实现的数字权限管理服务),这二者下面都有讨论。
需要意识到的是,在这些概要中定义的许多数据类型和服务是抽象的,应于使用之前加以具体化。其他概要是在核心概要之上构建起来的。
5.2.NEMO概要层次结构
在一个实施例中,服务接口和相关数据类型的定义构成一组在彼此之上构建的且并可扩展的强制、可选概要。概要与概要扩展之间的差别相当细微。一般来说,概要扩展不增加新的数据类型或服务类型定义。它们只是扩展现有的抽象和具体类型。
图23描绘了一个示例性的NEMO和DRM功能的概要层次结构。该概要层次结构的主要元素包括:
核心概要(profile)-这一概要层次结构的基础是核心概要2300,它最好共享NEMO和DRM的功能。所有其他概要均以这一概要为基础。它包括一组基本的普通类型(下面进行论述),作为创建框架内更复杂的类型的基础。核心概要中的许多类型是抽象的,在使用前须加以具体化。
核心概要扩展-紧靠核心概要2300上方的是核心概要扩展2320,它们是核心概要2300中的类型的初步具体化,由此产生具体的表示。
核心服务概要-同样紧靠核心概要2300上方,核心服务概要2310规定一组通用基础设施服务(下面也会讨论)。这一概要中的服务定义是抽象的,在使用前须加以具体化。
核心服务概要扩展-核心服务概要扩展2330是在核心概要扩展2320及核心服务概要2310之上构建的,是核心服务概要2310中所规定服务的初步具体化,由此产生具体的表示。
DRM概要-紧靠核心概要2300上方的还有DRM概要2340,是其他与DRM相关的概要的基础。DRM概要2340包括一组基本的普通类型(下面将讨论),作为创建更复杂的DRM特定类型的基础。DRM概要2340中的许多类型是抽象的,在使用前须加以具体化。
DRM概要扩展-DRM概要扩展2350是在DRM概要2340之上构建的,它们是DRM概要2340中类型的初步具体化,由此产生具体的表示。
DRM服务概要-DRM服务概要2360也是在DRM概要2340之上构建的,并定义一组通用DRM服务(下面也会讨论)。这一概要中的服务定义是抽象的,在使用前须加以具体化。
特定DRM概要-特定DRM概要2370是在DRM概要扩 展2350和DRM服务概要2360之上构建的,是DRM服务概要2360中定义的DRM服务的进一步具体化。这一概要也引入了某些新类型,并进一步扩展了核心概要扩展2320中说明的某些类型。
5.3.NEMO服务与服务规范
在一个实施例中,这一概要层次结构内部包含下列主要服务结构(详细说明如上):
对等发现-系统中的对等方彼此互相发现的能力。
服务发现-发现不同对等方提供的服务并获得有关服务的信息的能力。
授权-确认给定对等方(例如节点)是否有权访问某一指定资源(例如一项服务)的能力。
通知-有关依据指定标准、向一组给定对等方(例如节点)传递目标消息的服务。
下面是这一概要层次结构示例中某些主要DRM结构的定义(详细说明亦如上):
个性化-为一DRM相关端点(诸如一CE设备、音乐播放器、DRM许可服务器等等)获得在一特定DRM系统环境下建立有效身份所需要的凭证、策略及其他对象的服务。
许可获得-获得新的DRM许可的服务。
许可转换-以一种DRM许可新格式交换另一种格式的服务。
成员身份-为在某种指定域内建立成员身份而获得各种类型对象的服务。
在一个实施例中,NEMO/DRM概要层次结构可被描述为一组通用界面规范(描述一组抽象的服务、通信模式及操作)、类型规范(包含NEMO概要中定义的数据类型)和具体规范(将抽象的服务接口映射到具体接口,包括与特定协议的绑定)。此文附录C以“服务定义及概要架构”的方式列举了这些规范的一个实施例。
6.其他应用情形
图24是一个相对简单的NEMO实施例工作示例,环境为用户使用新的音乐播放器播放一首受DRM保护的歌曲。然而如下所 示,即便这一简单的示例也显示了许多不同的潜在相关应用情形。该示例证明了发现服务的桥接作用——使用基于通用的即插即用(UPnP)的服务发现作为寻找和链接到一个基于UDDI的目录服务的机制。它也详细说明了个人局域网(PAN)与广域网(WAN)服务之间的交互、为使用服务协商一个信任环境,以及提供新的设备和DRM服务。
参见图24,一个用户刚刚购买了一个新音乐播放器2400,想要播放一首受DRM保护的歌曲。播放器2400能够支持这一DRM系统,但需要被个性化。换言之,尽管播放器2400包括某些使它支持NEMO和具有DRM的功能的元素(未示出),但它首先必须执行个性化过程,才能成为此系统的一部分。
通常情况下,一个NEMO客户端包含如上图5a和6所示的某些基本元素,例如一个服务接入点,这样才能调用其他节点的服务;信任管理处理,以表明它是一个播放某些受保护内容的信任资源;以及一个Web服务层,以支持服务调用及消息的创建和接收。然而如下所讨论的,并非所有这些单元对于使一个节点加入一NEMO系统都是必要的。
在某些实施例中,客户端节点也可能包含若干DRM相关的基本元素,如上图12a和13-15所示,例如一DRM客户端引擎和加密服务(及相关对象和加密密钥),这样才能处理受保护内容,包括解密受保护歌曲;以及一媒体表现引擎,以播放歌曲。同样在这里,并非所有元素都必须存在。例如,播放器2400如果是只能播放不受保护内容的音乐播放器,则可能不需要其他音乐播放器所必备的核心加密元素。
更具体地说,在图24所示的示例中,播放器2400是无线设备,支持UpnP和蓝牙协议,并带有一套X.509证书用来确认签名及为消息签名。播放器2400是支持NEMO的,因为它能够生成和处理有限数量的NEMO消息,但由于资源限制,它不包含NEMO服务接入点。
然而,播放器2400能够加入用户家中的个人局域网(PAN)2410,该网包括一个支持NEMO的、连接Internet并带有蓝牙和一个NEMO SAP2430的家用网关设备2420。播放器2400和网关2420的UpnP栈均已扩展为支持用于“支持NEMO的网关”服务的新服务 概要类型,下面将进行讨论。
当用户下载一支歌曲并试图播放时,播放器2400确定它需要被个性化并启动该过程。例如,播放器2400可能发出一个对PAN 2410上的NEMO网关的UpnP服务请求。它找到一个NEMO网关服务,而且网关2420返回允许播放器2400连接到该服务的必要的信息。
接着,播放器2400生成一个NEMO个性化请求消息并将其发送给网关服务。该请求包括一个与播放器2400的设备身份相关联的X.509证书。网关2420接到请求后,确认它不能在本地满足该请求,但是能够发现其他潜在服务提供者。然而,网关2420有一个策略,规定它收到的所有消息都必须是数字签名的。因此它拒绝该请求,并返回一条授权失败消息,申明与处理此类请求相关的策略。
播放器2400接到拒绝后,注意到拒绝服务的理由,随即进行数字签名(亦即如上与图15相关的讨论)并将请求重新提交给网关2420,这次消息被网关所接受。如前边提到,网关2420不能在本地满足该请求,但可以执行服务发现。网关2420不知道它的SAP 2430实现所支持的特定发现协议,于是,根据所需要服务类型(个性化)生成一个普通的基于属性的服务发现请求,并经由SAP 2430发出请求。
SAP 2430配置有必要的信息,可以与UDDI注册中心(例如基于Internet的UDDI注册中心2440)通信,它将该请求转换成适当格式的本地UDDI查询并将其发出。UDDI注册中心2440知道一个支持DRM个性化的服务提供者并返回查询结果。SAP 2430接收结果并向网关2420返回带有服务提供者必要信息的适当格式的响应。
网关2420从服务发现响应中提取服务提供者信息,并基于初始请求代表播放器2400生成一个新个性化请求。这一请求提交给SAP 2430。服务提供者信息(特别是个性化服务2450的服务接口描述)说明了SAP 2430必须如何与一个通过WSDL描述的网络服务公开其服务的个性化服务进行通信。SAP 2430按照这些要求调用个性化服务2450并收到响应。
网关2420随即将响应返给播放器2400,播放器2400就可以使用响应中的载荷将其DRM引擎个性化。此刻,播放器2400获得 必要条件,能够充分参与各种本地与全球性面向用户的服务。这些服务提供对多种本地及远程内容服务、查询、匹配与许可服务以及其他自动化供应服务的完全浏览和访问,共同协作为用户服务。如上所解释的,为访问某些受保护的内容,可能需要各种解密密钥,这里假定用户和播放器2400满足内容提供者所实施的任何策略。
这样,一个在家中使用个人媒体播放器的用户可以享受CE设备的简单,而又享受网关和对等设备提供的服务。当用户旅行到另一地点时,该设备通过逻辑上连接到家庭网络的新网关服务能够重新发现并使用从家中可得到的大部分或全部服务,,同时享受新地点可用的服务,只要这些服务被该种服务相关各种政策所允许。反过来,用户的设备可以为在新地点发现的对等方提供服务。
很明显,利用某些或全部这些结构(NEMO节点、SAP、服务适配层、诸如XML、WSDL、SOAP、UDDI等各种标准),还可能有许多其他情形,即使在这个DRM音乐播放器示例的领域内。例如,播放器2400可能有自己的SAP,也许不需要网关2420。UDDI注册中心2440可能会用于其他目的,诸如查找音乐内容和/或为其发放许可。此外,还可构建许多其他DRM应用,例如涉及针对各种不同类型用户、多种不同类型的音频和视频实施复杂使用和分发策略的许可架构。再者,于DRM环境之外,几乎所有其他基于服务的应用都可使用NEMO框架来构建。
作为另一个示例,我们看一下NEMO在业务对等环境中的应用。业务应用开发与集成技术的快速发展已超出大多数IT部门所实施的传统工具和软件开发生命周期的局限。这包括文字处理文件、图表表示和电子表格的发展。尽管有些人会争论,这些最简单的形式文件,是否代表真实意义上的应用,但是应该注意到这些文件的许多形式具有经过正式描述的、定义良好的和复杂的对象模型。例如,这种文件或其他对象可能包括状态信息,该种信息可在对象的生命周期内被检查及更新,并具有让多个用户同时对该对象进行操作的能力,和/或其他任意的功能。在更复杂的情形下,基于文档的信息对象可经程序汇编,表现得如同成熟的应用。
正如传统的软件开发一样,这些类型的对象也可得益于来源控制和问责制。今日有许多系统支持文档管理,并有许多应用支持某种 方式的文件控制。但是大多数这种系统在分布式处理环境条件下表现出局限性,包括利用显式的登记和检验模型的集中化的版本管理方法,以及在特定应用条件下被束缚于客户端表现应用或格式的不灵活的(非常薄弱或非常严格的)相干性策略。
借助于一个强调发现和格式协商能力的P2P策略结构,NEMO的优选实施例可用来解决这些局限。我们可以使一项应用(例如一个文档)的创建具备更丰富的结构形式,从而具有多种优点。丰富的策略可以应用于对象和应用的结构。例如,一个策略可以具体规定下列一些或全部内容:
●只有某些模块可以被修改。
●只有对象接口可以扩展或实现方式可以改变。
●只允许删除但不允许扩展。
●如何应用更新,包括诸如自动合并非冲突的更新功能,以及在某一特定对等方向其他对等方发送其更新之前即应用更新。
●基于策略的通知,这样使所有愿意的对等方都可得到更新通知,以便通过最适宜的机制参与直接同步。
●根据客户的能力,支持来自不同类型客户的更新。
为实现这一功能,每一个参与者所使用的创作应用可以是支持NEMO的对等方。对于创建的文档,可使用一个模板来说明策略,包括谁被授权、对文档的每一个部分可以做什么(除了文件的正常格式化规则外)。只要NEMO对等方所使用的策略引擎可以按其语义解释和执行策略规则,而且,只要文档创建所允许的对等接口支持的操作能够经由服务适配层被映射到一个特定对等方的环境,那么任何对等方均可参与其中,但内部对文件的表示可能会有所不同。
考虑这样一个系统:包括不同的NEMO对等方,其使用构建在NEMO框架之上的服务为形成一份报告文档而协作。在这个示例中,一个无线PDA应用运行一个以Java写成的应用程序,用来处理文档并以文本格式输出。在一台桌面工作站上微软Windows下运行的一个不同的实现使用微软Word格式处理同一份文件。PDA和工作站都能通过例如连接到一个局域网而彼此通信,这样就使PDA用户与工作站的用户就同一份文件彼此合作。在这个示例中:
●参与合作的NEMO对等方能够发现彼此、彼此的当前状态及其能力。
●每一个NEMO对等方为每一个可确认修改提交其身份、更改及操作(例如删除、扩展等等)
●将所有更改传播给每一个NEMO对等方。这可能实现是由于每一个NEMO对等方能够发现另一个对等方的概要和能力(如果公开宣传)。在这一点上,如果它不能这样做的话,通知对等方可将内容修改编码为被通知对等方可接受的格式。另一种选择是接受对等方在其接口接收到内容修改时可以将其以任何它视为合适的格式呈现。
●对等方在接受一个修改之前确认它是来自授权的NEMO参与者。
●依据文档策略应用修改。
作为另一个示例,我们看一下这样的情形,即一个便携式无线用户电子(CE)设备是一个支持NEMO的节点(X),其支持DRM格式A,但欲播放DRM格式B的内容。X宣布它再现该内容的愿望,及它的属性描述(例如它的身份、它支持的操作系统、它的可更新性概要、支持的付款方式和/或类似属性),然后等待从其他提供可能的解决方案的NEMO对等方返回的响应。X收到对其查询的三个响应:
(1)对等方1可以提供内容的清晰MP3格式的可下载低质量版本,费用为2美元。
(2)对等方2可提供经由安全信道、按播放次数付费的高质量内容流,费用是每次播放0.5美元。
(3)对等方3可提供对X的软件升级,该升级使它能播放DRM格式B的内容,费用为10美元。
审阅提案后,X决定第一方案为最佳选择。于是它通过第一方案提交内容请求。该请求包括声明一项委托,即允许对等方1通过另一个NEMO服务从X的支付帐户扣除2美元。一旦X付款,V即从对等方1收到随响应送来的允许它下载MP3文件的令牌。
如果X却决定第三选择是最佳方案,随之而来的是一个更复杂的业务交易。例如,第三选择可能需要被表示为一个使用NEMO编 排描述符(NOD)描述的交易业务过程,所述NEMO编排描述符是由包含在支持NEMO的参与对等方中的NEMO工作流整理器(WFC)元素实现的。为完成对X的必要软件更新,可使用NEMO框架执行下列操作:
●X从其无线服务供应商(B)获得允许它接受更新的许可。
●无线服务供应商B直接验证对等方3的证书以确定其身份。
●X从B处下载允许它安装第三方软件更新的强制性更新,对此没有策略限制,但该场景是引起此操作的第一触发事件。
●X为对等方3所提供的更新付款。
●X从对等方3下载更新。
在这一业务过程中,有些操作可能可以由WFC元素同时执行,而其他操作可能需要获得授权并按照特定顺序执行。
NEMO框架的潜在应用的另一个示例是在线博弈环境。不少热门的多玩家博弈环境网络是集中型封闭门户结构,它使在线玩家能够创建并参与博弈会话。
这些环境的局限性之一在于用户通常必须与对弈网络具有紧密关系,并须有一帐户(通常与一特定博弈名称关联)以便使用该服务。一般玩家通常必须管理跨越多个博弈网络、涉及若干名称的几个博弈帐户,并与特定的博弈提供者的客户端应用交互,以便组织多玩家博弈并参与网络之内。这种做法往往不方便,不利于在线使用。
NEMO框架的实施例可用于增强在线博弈体验,通过创造一个支持更趋向联合的、分布式博弈体验的环境,使专业在线博弈网络的细节对于用户和服务提供者来说是透明的。这不仅提供了更好的用户体验,从而鼓励采用这些服务,同时能够降低博弈网络提供者的管理负担。
为实现这些益处,可用NEMO模块对博弈客户端进行个性化,使其能够作为NEMO对等方参与其中。另外可用NEMO模块对博弈网络进行个性化,使其能以标准化方式公开管理接口。最后,可用NEMO信任管理确保只有授权的对等方才能以指定方式进行交互。
例如,假设有3个博弈网络提供者A、B和C,及两个用户X 与Y。用户X有一关于A的帐户,而用户Y有一关于B的帐户。X与Y都要求可在C运行的一个新赌戏,并想彼此对博。使用NEMO框架,X的博弈对等方能够自动发现在线博弈提供者C。在A确认C是一合法赌博网络后,X的帐户信息可从A传输到C。现在X已在C注册,规定可以利用正确的令牌与C进行交互。用户Y借助来自B的凭证,通过同样程序获得访问C的资格。一旦X与Y都注册,就可彼此发现并创建一个在线博弈会话。
这一简单注册示例可进一步扩展到处理在线博弈环境可能提供的其他服务,例如博弈令牌存储(例如在保险箱内)、帐户支付以及诸如历史得分记录之类的状态信息共享。
虽则以企业文档管理、在线博弈及媒体内容使用为例做了展示,应该明白此处描述的NEMO框架和DRM系统可应用于任何适宜的场合,并不限于这些特定的示例。
附录A
用于对等服务编排的系统和方法
本附录对应于美国临时专利申请第60/476,357号专利,其发明名称为“用于对等服务编排的系统和方法”,申请人为William Bradley和David Maher,于2003年6月5日提交(“Bradley et al.application”)。因此,对于贯穿提交的整个PCT申请中对“Bradley etal.application”的引用属于这里附录A中的信息。
版权授权
本专利文档的公开部分包含受版权保护的内容。版权所有人并不反对任何人将本专利文档或专利公开部分复制到专利商标局的专利文件或记录中,但保留其他所有版权。
发明领域
本发明一般性涉及对数字信息和服务的分发和使用。更具体地,公开了提供和/支持对等服务编排的系统和方法。
发明背景和发明概述
如今,要实现建立一个互操作和安全的媒体相关服务环境的目标,还存在许多障碍。例如,多个事实上相互重叠的正式标准会限制直接的互操作性;定位和连接到所需的服务通常很困难;实现技术通常是不可互操作的;并且在不同的信任和保护模式之间经常存在阻抗不匹配。
尽管新兴Web服务标准正在着手解决web上的这些问题,但这些方法并不完善。另外,这种方法不能跨个人和局域网、家用、企业和部门网关以及广域网等多层次的网络节点解决此类问题。而且,这些标准也不能通过利用各种本地和远程的允许集成许多传统应用的服务接口绑定(例如WS-I、Java RMI、DCOM、C函数调用和.Net等等)对简单和复杂服务进行动态编排。
本发明的实施例可用于解决部分或全部这些问题。例如,在某些实施例中,服务提供者可以使用最适合于参与给定异类服务网络的设备、服务或应用的服务发现协议。因而,可以将BlueTooth,UpNp,rendezvous?,JINI,UDDI等集成在同一个服务中,并 且每个节点可以使用最适合承载该节点的设备的发现服务。
在媒体环境中,主要参与者群体(例如内容发布者、分发者、零售商、消费设备提供者和用户)所需要或喜欢的系统和接口常常有很大的不同。因此,希望将这些实体所提供的功能统一到能够迅速发展为满足所有参与实体的最佳配置的集成服务中。通过使用对等(“P2P”)服务编排,本发明的实施例可以用来实现该目标。
尽管已经看到P2P架构对于诸如音乐分发和如今的视频分发这种应用的优势,P2P技术还可以使用得更为广泛。例如,在各种企业服务,特别是两个或更多企业的交互中,也存在很多应用机会。企业大多是按照一定的层次结构进行组织的,其信息系统通常反映了这种组织结构,当两个企业的人员进行交互时,通过对等接口他们的交互往往更有效。A公司中的收货人员/服务可以通过与B公司的发货人员进行对话来更直接地解决问题或获得有用的信息。交叉层次或不必要的接口一般是没有用的。一些送货公司(例如FedEx和UPS)认识到这一点,因此他们允许客户直接看到其处理,直接对事件进行监视。公司和市政当局正在通过企业门户来组织其服务,从而形成自然的自助服务。但是,迄今为止,对等架构并不允许一个企业向其用户和提供者公开自己的各种服务接口,让这些实体在自然的对等级别上进行交互,这样这些实体就不能以最适合自己的方式编排该企业的服务。本发明的实施例将允许这样做。
公开了用于在连成网络的计算机环境中提供服务编排的系统和方法。应该理解可以用各种不同的途径实现所公开的实施例,包括过程、设备、系统、装置、方法或计算机可读介质。下面说明几种有创造力的实施例。
在一组实施例中,提供了一种服务架构,它能使得用户或企业媒体空间中的参与者(例如,用户、内容提供者、设备制造商、服务提供者、企业部门)彼此找到对方、建立信任关系并通过信任的服务接口以丰富的动态方式交换价值。这个服务架构可以被描述成在不同种类的消费设备、媒体格式、通信协议和安全机制的环境实现可操作的、安全的、与媒体相关的电子商务的平台。
将通过下面的详细说明以及附图更详细地阐明本发明的这些和其它特性、优势和实施例。
附图概述
通过结合附图参考下面的详细说明将更容易理解本发明的实施例,在附图中相同的引用编号表示相同的结构组件,在附图中:
图1示出了该媒体驱动架构的一个示范实施例。
图2是一个媒体驱动节点的概念视图。
图3示出了媒体驱动节点之间的一般交互方式。
图4示出了服务适配层的一个实施例。
图5a示出了客户端MSDL交互中涉及的服务代理。
图5b示出了客户端本地交互中涉及的服务代理。
图6示出了服务端指向-中间交互模式中涉及的服务代理。
图7示出了媒体驱动工作流程整理器的交互模式。
图8示出了发现了支持通知处理器服务的节点的一组通知处理节点。
图9示出了依照一个优选实施例的通知发送。
图10示出了请求节点向目标服务提供节点进行服务查询请求的客户端-驱动情况。
图11示出了请求节点想要向另一节点注册它的描述的节点注册情况。
图12示出了正在被通知服务存在的具有媒体驱动功能的节点。
图13示出了根据显式的交换建立信任的过程。
图14示出了受策略管理的服务访问。
图15示出了如何在向参与者传送CRM-相关服务的环境中使用媒体驱动。
详细说明
下面提供对有本发明的有效实体的详细说明。尽管这个说明是结合了几个实施例而提供的,但应该理解本发明并不仅限于任何一个实施例,而是包括各种不同的可选方案、改进和等效方案。例如,尽管一些实施例是在面向用户的内容和应用的环境中说明的,但本领域中的技术人员将认识到所公开的系统和方法适用于更广泛的应用。例如,没有限制,本发明的实施例可以被很容易地应用到企业内容和应用环境中。另外,尽管在下面的说明中阐述了大量具体细节以便提供对本发明的透彻理解,但不要这些细节中的一些或全部也可以实践本 发明。此外,为明确起见,没有详细说明一些本领域中已知的涉及本发明的特定技术材料以避免不必要地模糊本发明。
这里说明了一种新颖的、受策略管理的、对等的服务编排架构
(媒体驱动架构)的实施例。该架构最初被设计用来支持能带来丰富媒体体验的基层自组织服务网络的形成。如同本领域中的普通技术人员将理解的那样,该架构本身新颖,它的很多特性、方面和应用也新颖。
在一个优选实施例中,该架构被设计用来用服务描述语言(媒体驱动服务描述语言“MSDN”)激活很多不同服务类型的动态配置和进展。服务可以跨越对等的通信节点分布,每个对等通信节点用专为这个架构设计的消息泵和工作流整理器提供消息路由和编排。媒体驱动服务接口的分布式策略管理可以用来帮助提供信任和安全,由此促进价值的商业交换。
对等计算通常被定义为计算机和其它智能设备之间的资源(例如硬盘和处理周期)共享。参见http://www.intel.com/cure/peer.htm。这里,P2P可以被看作是允许网络节点对称地消耗并提供所有种类的服务的通信模型。P2P消息传送和工作流整理允许从不同组的更原始的服务动态创建丰富的服务。这样能够在共享资源是很多不同类型的服务,甚至使用不同服务绑定时对P2P通信的可能性进行检查。媒体驱动的实施例可以用来提供使各参与者(例如用户、内容提供者、设备制造商和服务提供者)彼此找到对方、交互、交换价值并以多种动态方式合作的媒体服务架构。可以用媒体驱动的实施例来协调的不同类型的服务从基本的服务(发现、通知、查找和文件共享)到更复杂更高级的服务(例如锁定、许可、匹配、授权、支付事务和更新)以及这些服务中的任意或全部的组合。
媒体驱动的企业应用在企业转向面向服务的体系结构时尤其能引起企业的兴趣。通过对等服务编排和分布式策略管理的使用,企业能够允许它们的部门发布可以由客户和提供者配置成丰富的个性化服务的服务接口,分解人工层次并允许内部和外部实体优化它们与该企业的交互。
为说明方便起见,将使用下列术语:
服务-由一些提供者提供的任何明确定义的功能。例如,可以 是像蜂窝电话这样的设备中提供的初级功能(例如语音识别服务)或者在万维网上提供的多-方功能(例如购物服务)。
服务接口-与一个或多个服务交互的任何明确定义的途径。
服务绑定-用来调用服务接口的约定和协议。它们可以用大量明确定义的方式来表示,例如WS-I标准XML协议、基于WSDL定义的RPC或来自DLL的函数调用。
服务编排-将服务组装、调整成符合服务提供者指定的规则的可管理的、粗粒度的服务、可重用的组件或完整的应用程序。例如,规则基于提供者标识、服务类型、访问服务的方法和组织服务的顺序等等。
管理-进行授权或控制一些对象(例如音乐文件、文档或像下载或安装软件升级的能力这样的服务操作)上的影响的过程。管理通常与信任管理、策略管理和内容保护相交互。
对等(P2P)原则-支持参与者对服务进行对称访问的通信模型。
媒体驱动节点-媒体驱动架构中的参与者。在一个优选实施例中,一个节点可以充当多种角色,包括服务用户和/或服务提供者。可以用多种形式实现节点,包括消费类电子设备、软件代理(例如媒体播放器)或虚拟服务提供者(例如服务搜索引擎、DRM许可提供者或内容箱)。可以编排媒体驱动服务以提供更健壮的组合服务。
媒体驱动服务描述语言(MSDL)-在一种实施例中,一种基于XML模式的语言定义并描述了用于媒体驱动架构的实施例中节点之间通信的可扩展的数据类型和消息集合。
7.逻辑模型
图1示出了媒体驱动架构的一个相对简单的实例。在一个优选实施例中,该媒体驱动架构由以P2P方式交互的在逻辑上相连的一组节点构成。
在一个优选实施例中,这种交互的一些特征是:
-媒体驱动节点通过进行服务调用请求并接收响应而交互。请求和响应消息的格式和有效载荷以MSDL定义。媒体驱动架构支持不同通信模型的构造,从与单个服务提供者的直接交互到来自多个服务提供者的精心策划的服务集合的复杂聚集。在一个优选实施例中,该架 构支持用于使用现有服务设计标准的基本机制并且还允许服务提供者使用它们自己的规则。
-一个服务接口可以有一个或多个服务绑定。在一个优选实施例中,服务绑定的说明以MSDL表示。在这个实施例中,媒体驱动节点可以调用另一节点的接口,只要那个节点的接口绑定可以用MSDN表示,以及只要该请求节点能够支持与该绑定相关的规则和协议。例如,如果一个节点支持web服务接口,可能要求请求节点支持SOAP、HTTP、WS-安全等等。
-可以用直接提供了权限管理特征的标准化方式控制(例如,受权限管理的)任何服务接口。媒体驱动节点之间的交互可以看作是被管理的操作。
实际上任何类型的设备(物理的或虚拟的)都可以看作是潜在的具有媒体驱动功能,并且能够实现媒体驱动架构的关键特征。例如,设备类型有消费类电子设备、网络化服务或软件客户端。在一个优选实施例中,具有媒体驱动功能的设备(节点)通常包括下列逻辑模块中的一些或全部:
-本地服务API-该设备实现的一个或多个服务的集合。对媒体驱动节点在媒体驱动架构中直接或间接地公开什么服务没有要求。
-本地服务实现-本地服务API的对应实现集合。
-媒体驱动适配层-一个逻辑层,通过它可以用以MSDL描述的一个或多个可发现的绑定访问一个实体的本地服务公开的子集。
-媒体驱动架构支持库-为和包括对调用服务接口、消息处理、服务编排等等的支持的媒体驱动架构合作提供支持功能的组件。
图2提供了媒体驱动节点的一个示范实施例的概念视图。上述模块中的每一个所对应的实际设计和实现通常会随设备而不同。
8.基本的交互模式
图3示出了两个媒体驱动节点,服务请求者和服务提供者,之间通常的逻辑交互模式。
从请求节点的角度来说,事件流通常是:
-进行服务发现请求以定位能够用指定的服务绑定提供必要服务的具有媒体驱动功能的节点。节点可以选择将与所发现的服务有关的信息缓存起来。媒体驱动节点之间的服务发现的交互/机制可以只是媒 体驱动节点选择实现的另一服务。
-一旦找到了候选的服务提供节点,请求节点可以选择根据具体的服务绑定将请求分派到一个或多个服务提供节点。
-在一个优选实施例中,希望彼此进行安全通信的两个节点出于交换MSDL消息的目的而建立了信任关系。例如,它们可以协商一组可以用在确定身份、授权、建立安全通道等等之中的兼容的信任凭证(例如,X.500鉴定、设备密钥,等)。有些情况下,这些凭证的协商可以是服务接口绑定(例如,如果WS-I XML协议就是WS-安全,或者是两个众所周知的节点之间的SSL请求)的隐含属性。有些情况下,信任凭证的协商可以是明确的单独步骤。在一个优选实施例中,是由一个特定的节点来确定什么凭证对与别的媒体驱动节点交互来说足够,并做出它能够信任特定节点的判断。
-请求节点创建对所请求的服务对应的适当的MSDL请求消息。
-一旦消息被创建,它就被分发到目标服务提供节点。例如,该请求的通信方式可以是同步或异步的RPC方式,或者基于服务绑定的面向消息的方式。服务请求的分发和响应的接收可以由设备直接完成或通过媒体驱动服务代理完成。服务代理(下面有说明)为发送消息到媒体驱动架构中的其它参与者提供了抽象和接口,并且可以隐藏特定的服务绑定问题,例如兼容的消息格式、传输机制、消息路由问题或类似的问题。
-在分发了请求之后,请求节点通常将接收到一个或多个响应。根据服务接口绑定的细节以及请求节点的选择,响应可以用多种方式被返回,例如包括RPC-方式的响应或通知消息。在到目标节点途中的响应可以通过能够提供多种媒体驱动服务(包括,例如路由、信任协商、整理和相关功能等)的其它中间节点。
-请求节点验证响应以确保它符合在它和服务提供节点之间所协商的信任语义。
-随后根据消息有效负载类型和内容进行适当的处理。
再来参考图3,从服务提供节点的角度,事件流是:
-确定是否支持所请求的服务。在一个优选实施例中,媒体驱动架构不要求服务接口如何映射成服务入口点的方式或粒度。在最简单的情况中,服务接口可以明确地映射到特定的服务和绑定动作并且调 用它可以构成对该服务的支持。但是,在一些实施例中单个服务接口可以处理多种类型的请求并且一个特定的服务类型可以包括在做出该节点支持具体想要的功能的判定之前要检查的附加属性。
-一些情况下服务提供者必须确定它是否信任请求节点并协商一组兼容的信任凭证。在一个优选实施例中,不管服务提供者是否判定为可信的,与该服务接口相关的任何策略仍将适用。
-服务提供者判定并将授权请求分发到那些负责授权对该接口的访问的媒体驱动节点以便确定该请求节点是否能够访问。很多情况下,授权节点和服务提供节点可以是相同实体,并且对授权请求的分发和处理可以是通过轻量级媒体驱动服务接口绑定(例如C函数入口点)调用的本地操作。
-在接收到授权响应后,如果请求节点获得了授权,服务提供者将满足该请求。反之,可以生成适当的响应消息。
-响应消息是根据服务接口绑定和请求节点的选择而被返回的。在到请求节点的途中,该消息可以通过能够提供必要的或“附加值”服务的其它中间节点。例如中间节点可以提供路由、信任协商以及到传送到能够以可接受的方式传送消息到请求节点的通知处理节点。“附加值”服务的一个例子是赠券服务,如果它知道请求节点的兴趣就将赠券附加到消息上。
9.MSDL
与服务调用相关的消息语法优选地以相对灵活和可移值的方式进行描述,是媒体驱动架构中所用的核心数据类型。在一个优选实施例中,这是用服务描述语言(这里称为媒体驱动服务描述语言,或MSDL)实现的。另外,MSDL提供了简单的方式用于引用与所说明的服务相关的语义描述。
在一个优选实施例中,MSDL是基于XML模式的描述语言,它包括了能够实现服务和它们相关的接口绑定的描述和组成的扩展的数据类型集合。MSDL中的很多对象类型是多态的并且可以对其进行扩展以支持新功能。在一个优选实施例中,基本的MSDL轮廓将被称作“MSDL内核”。MSDL用户可以直接以特定方式或者通过一些形式的标准化过程定义在MSDL内核之上构建的添加了新数据和服务类型并扩展已有的数据和服务类型的其它MSDL轮廓。在一个实施例中, MSDL内核包括对下列主要的基本数据类型的一些或全部的定义:
-节点-媒体驱动架构中的参与者的表示。
-设备-封装了虚拟设备或物理设备的表示。
-用户-封装了客户端用户的表示。
-内容引用-封装了内容对象的引用或指针的表示。这种引用通常将利用描述内容格式、位置等的其它标准化方式。
-DRM引用-封闭了对数字权限管理格式描述的引用或指针的表示。
-服务-封装了对从节点输出的一组明确定义的功能的表示。
-服务绑定-封装了与服务通信的具体方式。
-请求-封装了对一组目标节点的服务请求。
-请求输入-封装了请求的输入。
-响应-封装了与请求相关的响应。
-请求结果-封装了与某请求相关的响应中的结果。
在一个实施例中,MSDL内核包括对下列基本服务的一些或全部的定义:
-授权-授权某个参与者访问服务的请求或响应。
-消息路由-提供消息路由功能,包括使服务提供节点转发该消息或收集消息并对消息进行整理的功能的请求或响应。
-节点注册-为节点进行注册操作,由此允许该节点通过中间节点被发现的请求或响应。
-节点发现(查询)-与媒体驱动节点的发现相关的请求或响应。
-通知-发送或传送目标通知消息到特定节点集合的请求或响应。
-服务发现(查询)-与由某个一个或多个节点的集合提供的服务的发现有关的请求或响应。
-安全凭证交换-与允许节点交换安全有关信息(例如密钥对、凭证等等)有关的请求或响应。
-升级-表示与接收功能升级有关的请求或响应。在一个实施例中,这个服务是完全抽象的,而其它轮廓提供具体的表示。
10.体系结构概述
10.1服务适配层
再次参见图2,服务适配层可以用来公开媒体驱动架构中的参与者的本地服务。在一个优选实施例中,MSDL被用来描述如何具体地在一个或多个接口上绑定到服务。服务描述还可包括其它信息,包含了下列中的一些或全部:
-将负责授权访问服务的一个或多个服务提供者的列表。
-对服务的目的和用途的语义描述的指针。
-如果该服务是来自一组其它服务的精心设计的执行的复合服务,对必要的编排的说明。
除了充当以MSDL发布服务的逻辑点之外,在一个优选实施例中服务适配层还封装了由特定参与者支持的那些平台的任何MSDL轮廓中包含的MSDL数据类型和对象的具体表示。它还包含将对服务请求对应的MSDL消息映射成适当的本地服务实现的逻辑。
通常,服务适配层的实现包括图4所示的组件。尤其,典型的服务适配层实现在分层实现中将包括下列组件:
-封装了服务接口的MSDL绑定中说明的服务接口入口点的层。通过这些接入点,可以进行服务调用,传入输入参数数据并输出结果。
-对应于MSDL消息处理逻辑的层。这一层通常包含驱动处理的某种消息泵、某种类型的XML数据绑定支持以及初级XML分析器和数据表示支持。
-表示对应的以MSDL描述的服务消息被映射到其上的可用本地服务的层。
10.2架构支持库
再来参见图2,该架构支持库提供了使得实体参与媒体驱动架构更容易的可选支持功能集。如何分解该库(对象集、功能集等)以及如何实现它将根据目标平台而变化。可能有支持不同功能的多种版本的支持库。通常情况下,该支持库中的可用功能包括下列中的一些或全部:
-服务代理-封装了使得媒体驱动节点能够向服务提供节点的目标集合进行服务调用请求并接收一组响应的功能。
-MSDL语言处理程序-用于处理MSDL语言部分的功能。
-服务缓存接口-允许节点管理所发现的节点和它们支持的服务之间的映射的公共服务提供者接口。
-工作流整理器接口-允许节点管理并处理MSDL的整理的服务提供者接口。它提供了基本的程序模块以编排服务。目前,这个接口一般是由支持消息路由并支持中间排队和消息整理的节点实现。
-通知处理器接口-服务提供者接口,用于勾住支持到一些明确定义的通知处理引擎的通知处理的媒体驱动节点。
-混合支持功能-用于生成消息ID、时间戳等等的程序。
10.3通信方式
给出媒体驱动架构的优选实施例中支持的以及用在不同支持库组件(例如服务代理)中的一般通信方式的基本概述是有帮助的。有多种基本类型的通信方式,包括:
异步RPC传送方式-在预计满足一个请求将占用延长的一段时间而客户端不想等待时这个模型有效。这里,客户端提交带有其将由一些服务提供节点以异步模式处理的预期的请求。一个服务提供端点可能响应表示它不支持这种模型,或者如果该服务提供节点不支持这种模型,它可以返回一个响应,携带有可以在后续请求中被提交给该服务请求节点以确定它是否对该客户端的请求有响应的标签。在一个优选实施例中,支持这种模型的服务请求端点将根据一些内部策略将未决请求的响应缓存起来。如果一个客户端试图挽回与这种请求相关的标签,并且没有响应可用,或者响应已经被该服务提供节点丢弃,那么可以返回适当的出错响应。
同步RPC传送方式-这里,客户端提交了一个请求然后等待返回一个或多个响应。提供服务的具有媒体驱动功能的端点可能以它不支持这种模型的指示来响应。
基于消息的传送方式-这里,客户端提交了一个请求,指示它想通过与它的通知处理服务接口的一个或多个相关的消息通知接收任何响应。一个节点可能回以它不支持这种模型。下面说明该通知架构的示范实施例。
上述交互模式都不需要阻塞或等待响应或者显式地轮询。可以 使用线程或其它平台特定的机制以用上述传送方式机制模拟阻塞和非阻塞语义。
10.4服务代理
具有媒体驱动功能的端点可以使用各种发现、名字解析和传输协议。结果,通常可以期望它使用灵活的可扩展的通信API。服务代理API对允许媒体驱动节点进行服务请求并接收一组目标媒体驱动节点的响应的功能提供公共接口。可以用客户端范围内(以共享库形式)或共享库范围之外(以运行在不同进程中的代理形式)的多种形式实现服务代理。服务代理实现的确切形式优选地是根据平台或客户端的需要而设计的。服务代理的使用是可选的,尽管通常它提供了重要的功能。服务代理的一些常见用途包括:
-服务调用的公共的可重用的API。
-对围绕传输通道的协商和使用的问题的封装。一些传输通道需要TCP/IP之上的SSL会话建立,一些通道可能只支持UDP/IP上的不可靠通信,其它信道可能根本不基于IP。在一个优选实施例中,通常对客户端隐藏了这些细节。
-对围绕用于消息路由的初始的媒体驱动节点集的发现的问题的封装。例如,有线机顶盒可以有专用的网络连接并且需要所有消息通过特定的路由和介质流动,而家庭网络中的便携媒体播放器可以使用UPnP发现来找到可直接访问的多个端点。另外,优选地对客户端隐藏了这些细节。
-“传统”客户端不能或不能选择通过MSDL消息的创建与其它媒体驱动节点进行直接对话。这里可以创建理解客户端所支持的任何本地协议的服务代理版本。
服务代理可以被实现成静态组件,只支持固定集合的协议绑定,或者被实现为能够动态地支持新的绑定。一般的服务代理模型的两个例子是:(1)服务代理直接接收并返回MSDL消息给客户端,和(2)服务代理支持客户端所理解的一些本地协议。服务代理可以被看作具有两端:请求参与者使用的客户端,和与其它具有媒体驱动功能的端点交互的服务端。
客户端和服务代理之间的两种主要交互模式是:
模式1(图5a)。客户端直接形成MDSL请求消息并将它们提 交给服务代理。它接收到MSDL格式的一个或多个消息,通常它需要对它们进行收集、解析和处理。客户端还可以提交显式的服务绑定集合以用在为请求的传送指定目标中。这些服务绑定可能已经由进行服务查找操作的客户端获得,或者通过使用从先前的请求响应中获得的信息而获得。
模式2(图5b)。服务代理适应客户端可以通过一些本地通信协议交互的客户端模型,服务代理将接受这些本地通信协议并且这些本地通信协议转换自MSDL或转换成MSDL以允许客户端参与到媒体驱动架构中。这里,本地协议或本地协议和执行环境的组合提供了服务代理所需的任何信息以生成适当的MSDL请求并在必要时确定适当的目标服务绑定。
在服务端,支持服务代理和提供服务的具有媒体驱动功能的端点之间的多种类型的交互模式,并且像客户端一样,可以设计交互模式并且交互模式可以根据多种标准(包括请求的本质、下面的通信网络、应用的本质和/或与任何目标服务绑定相关的传输协议)而变化。
在一种模式下,服务代理直接启动与多个潜在的服务提供者的通信,并接收送回的响应。这种交互模式可能符合正被从客户端转播以由服务代理使用的多个服务绑定,或者它表示存在服务代理在转播消息中使用的广播或多播。服务代理可以选择收集响应并整理或者只是返回第一个可接受的响应。
在图6所示的模式中,服务代理并不直接与目标服务提供端点通信,而是通过中间节点发送请求,中间节点转播请求、接收任何响应并将它们送回服务代理。这种交互模式是由于:
-服务代理不能/不希望直接支持与服务提供端点相关的任何服务绑定但能够与希望充当网关的中间节点建立关系。
-客户端也许能够发现或确定任何合适的服务提供节点的服务绑定,并希望允许一个中间节点试图发现任何适当的服务提供者。
-服务代理想要利用支持更健壮的收集和整理功能的中间节点,这些更健壮的收集和整理功能允许服务代理和服务提供者之间有更灵活的通信模式。
或者,除了上述基本的服务端交互模式之外,还可以有实现了上述模式或新模式的组合的服务代理实现。
10.5工作流整理器
在一个优选实施例中,对大多数有效的媒体驱动服务请求的完成通常需要某一类型的协作机制,该协作机制能够管理请求事件流、管理包括短暂的中间结果在内的任何相关数据并确保遵循与完成相关的规则(如果有的话)。这个功能可以用事务协商程序的形式提供,从关系数据库中简单的事务监控程序到在微软MTS/COM+中所看到的更通用的代理。在一个优选实施例中,工作流整理器是可编程的机制,通过它媒体驱动节点编排对服务调用的处理和完成。
在一个优选实施例中,可以根据特定媒体驱动端点的特征和需求设计工作流整理器,并且它被设计用来支持大量功能,从传统的消息排队到更复杂的分布式事务协商。简单的工作流整理器为任意MSDL消息的存储和检索提供了接口。通过构建工作流整理器,可以支持大量的功能,包括:
-对服务请求的收集以进行更有效的处理。
-将服务响应简单地聚集成复合响应。
-对多个服务请求和服务响应的手工编排以便创建复合服务。
-对多个服务请求和服务响应的自动编排以便创建复合服务。
图7示出了另一潜在的交互模式。这个交互模式从服务请求到达媒体驱动节点并通过该节点的服务适配层被接受开始。消息被传送到MSDL消息泵,它将首先驱动然后由工作流整理器驱动以满足请求并返回响应。这个模式是多个服务处理模式的基础。在一般的简单情况下,服务请求的完成可以用单个请求/响应交互模式表示,其中处理是相同的并且处理请求的规则被用MSDL完全表示为请求的一部分。但是,服务请求的完成可能取决于在某段时间上被异步处理的到达的多个MSDL消息。这种情况下,处理是由工作流整理器监控的潜在的长期事务的一部分。
在更复杂的情况下,特定服务请求的完成可能需要多个节点以协同方式参与。可以用MSDL表示处理请求的规则,MSDL可以随意包装来自其它服务编排描述标准(例如BPEL)的消息。在请求的完成中,节点的工作流整理器可能通过某组逻辑接口依靠功能或者可以和其它媒体驱动节点交互。
当一个MSDL请求消息被给到工作流整理器时,它确定处理该 请求的正确规则是什么。根据工作流整理器的实现,可以用该节点所公开的一组服务的固定状态机的形式表示服务描述逻辑,或者用支持对更自由的表达形式的服务处理逻辑(例如用BPEL4WS描述)的处理的方式表示它。工作流整理器体系结构优选地是模块化并且可扩展的,支持插件。在一个优选实施例中,MSDL自身支持表示将多个媒体驱动服务编排成复合服务的规则的简单方式。
除了解释服务组成和处理规则外,在一个优选实施例中工作流整理器将需要确定在启动服务完成处理周期的环境中是否应该使用MSDL消息、或者是否只是进一步将MSDL消息输入正在进行的事务链中。MSDL消息包括可用于进行这些类型的判定目的的ID和元数据;还可以扩展MSDL消息以包括促进消息处理的附加信息,可以是服务事务特有的附加信息。
10.6通知服务
除了异步和同步RPC-类通信模式外,在客户端明确启动请求并随即或者等待响应或者通过对标签的轮询周期性地检查响应的情况下,媒体驱动架构的优选实施例还支持基于通知意图的通信模式的纯消息传送类型。下面的组件构成了在一个优选实施例的通知架构中使用的核心MSDL数据和消息类型:
-通知-目标是感兴趣的具有媒体驱动功能的端点(节点)的包括指定类型的有效负载的消息。
-通知意向条件-用来确定特定节点是否将接收特定通知的标准。通知意向条件可能包括基于特定类型标识(例如节点ID、用户ID等)、事件(例如,节点发现、服务发现等)、近似性分组(例如,新的jazz俱乐部成员)或者一般分类(例如,广告)。
-通知有效负载-通知中标有类型的内容。有效负载类型可以从简单的文本消息到更复杂的对象。
-通知处理器服务接口-可以在其上接收通知的服务提供者接口的类型。服务提供者还描述了与该接口相关的通知意向条件,以及可接受的有效负载类型。支持这个接口的节点可能是该通知的最终目标或者是中间处理端点。
-通知处理器服务-能够将通知匹配到感兴趣的节点、根据某一策略传送通知的节点。
-通知发起者-向一组感兴趣的节点和/或通知处理节点的一个中间集合发出通知的节点。
像所有的MSDL数据类型和消息一样,通知、通知意向条件和通知有效负载优选地也是可扩展的。另外,通知处理器服务接口优选地受任何其它媒体驱动服务接口从属的相同授权过程所支配。因而,即使一个特定的通知可能就意向条件和可接受有效负载来说相匹配,节点也可能根据与该通知的中间发送者或发起源相关的某一相关接口策略而拒绝接受它。
图8示出了发现了支持通知处理器服务的节点的一组通知处理节点。作为它的服务描述的一部分,支持接收通知的节点指定它的通知意向条件是什么以及什么通知有效负载类型是可接受的。
图9示出了如何传送通知。任何节点都可以是发起源以及通知的处理者,也可负责传送它。选择处理来自外部通知-发起节点的通知的通知处理器可以和商用通知处理引擎(例如微软通知服务)结合在一起以提高效率。
10.7服务发现
媒体驱动架构的优选实施例支持一组灵活的发现服务模式。这些模式可以被映射到现有的发现模式上。在一个实施例中,该架构支持这些基本的服务发现模式:
-客户端驱动-媒体驱动节点明确地发出请求到支持“服务查询”服务接口的某组目标节点询问它们是否支持指定的服务集合。如果该请求节点获得了授权,该服务提供节点将报告它支持所请求的接口和相关的服务接口绑定。如果那些节点公开了任何服务这是它们将支持的更普通的接口中的一个。
-节点注册-节点能够向其它节点注册它的描述,包括它所支持的服务。如果一个节点支持这个接口,它希望从其它节点接收请求并随即根据某一策略缓存那些节点描述。这些节点描述随后可由接收节点或向具有缓存起来的节点描述的节点进行服务查询的其它节点直接使用。
-基于事件-节点发出表示状态变化(例如节点活动/可用)的通知,或者一个节点通告它支持某些具体服务。通知可以包含对该节点和它的服务的完整描述,或者只包含与该事件相关的节点的ID。感 兴趣的节点随后可以选择接受并处理该通知。
图10示出了客户端驱动的情况,其中某一请求节点向目标服务提供节点进行服务查询请求并接收指出该服务提供者是否支持所请求的服务的响应。
图11示出了节点注册情况,其中某一请求节点想要向打算接收它的描述并根据某一内部策略将其缓存起来的另一目标节点注册它的描述。该请求节点向目标服务提供节点发出注册请求并接收表示该服务提供者是否缓存了它的描述的响应。
图12示出了正通过通知(这种通知可能以多种形式到来,包括与节点状态中的一般状态变化有关的通知)被告知服务存在的具有媒体驱动功能的节点或者明确发送与服务可用性有关的通知的节点。
10.8服务授权
在媒体驱动节点允许访问指定服务之前,它优选地首先确定该请求节点是否被允许访问。在一个优选实施例中,允许访问是根据两个不同但相关的标准。第一个是该服务提供节点对于这次通信是否相信该请求节点,第二个是是否存在允许该请求节点访问所请求的服务的接口的策略。
10.8.1建立信任
在一个优选实施例中,媒体驱动架构对任意节点集如何达到彼此信任没有具体的要求、标准或决策逻辑。信任语义可以随节点而完全改变。媒体驱动架构努力提供允许节点协商相互可接受的信任关系的标准工具集。在节点间的信任判定和建立过程中,媒体驱动架构的优选实施例支持可用于建立信任关系的节点凭证交换。在该媒体驱动架构内,可以用多种不同模式交换与信任有关的凭证。例如:
-服务绑定属性-信任凭证作为服务接口绑定一部分被隐含交换的模式。例如,如果一个节点以SSL上的HTTP发送或作为需要WS-安全XMLt签名的Web服务公开它的服务,那么这个服务绑定的实际属性可以传送所有必要的与信任有关的凭证。
-请求/响应属性-通过MSDL请求和响应消息交换信任凭证的模式,可以选择包括消息上的属性作为凭证。
-显式交换-通过允许查询与特定节点包含的信任凭证有关的信息的服务-提供者接口明确地交换信任凭证的模式。这是最普遍的模 式,通常需要单独的来回会话以交换凭证。服务接口绑定自身提供相互可接受的信任通道。
可以直接作为请求和响应消息上的属性交换与信任有关的凭证。例如,数字证明可以被附加到请求和响应消息上并随着请求和响应消息而流动,并可以用于形成信任关系。
在图13所示的情况中,节点可以通过安全凭证服务直接交换凭证,如果特定节点支持这个接口的话。
除了这些基本模型之外,该媒体驱动架构优选地支持这些不同途径的组合。例如,可以用与半信任服务绑定相关的通信通道更直接地引导其它安全-相关凭证的交换或者直接交换安全-相关凭证(它们可能有某种类型的内在完整性)并将它们用于与某一服务接口绑定相关的安全通信通道的建立。
总之,建立信任必须遵循的信任模型语义和过程随实体而变化。有些情况下可以不需要节点之间的相互信任。这种类型的动态混合环境要求提供允许不同实体协商对环境敏感的信任语义的公共工具集的灵活模式。
10.8.2受策略管理的访问
除了在一组交互节点之间建立信任关系之外,在服务提供节点允许请求节点访问服务之前它优选地还必须根据与该服务接口相关的任何策略确定是否允许这个访问。该媒体驱动架构提供了一致、灵活的方式进行这个判定。在一个优选实施例中,作为服务描述的一部分,将指定一个或多个媒体驱动节点作为授权服务提供者。将要求这些授权服务提供节点中的每一个都实现用于处理并响应“授权”查询请求的标准服务。例如,在允许访问一个服务接口之前,目标服务提供者可以分发一个“授权”查询请求到授权访问它的服务的所有媒体驱动节点,并可以只在所有授权实体都响应表示允许该访问时才允许访问。
如图14所示,服务提供节点向管理对所请求的服务的访问的所有节点发出授权请求,然后根据结果或者处理并返回适用的服务响应或者返回表示该访问被拒绝的响应。除了提供一致的机制之外,还希望有授权节点用来做出判定的机制在实践上尽可能公开以便能够为具体的平台和客户端实现最合适的策略判定机制。媒体驱动优选地是策略管理系统中枢;它对授权节点如何根据授权查询做出与对服务的授权 有关的决策没有要求。
尽管媒体驱动优选地对由特定平台的授权节点使用的具体策略引擎和策略语言没有要求,但在一个优选实施例中要求它具有互操作性,即授权请求具有可交换和处理的某种标准形式。“授权查询请求”是可扩展的,能够携带灵活的有效负载以便它能够适应不同策略管理系统环境中的不同类型的授权查询。在一个实施例中,提供对至少两种授权格式的支持:(1)用某一最小的通用的命名标准作为输入(例如简单的请求者ID、资源ID、动作ID、)提供非常简单的包装的简单格式和(2)SAML格式,它提供了传送包装好的安全确认标记语言形式的查询请求的方式。
在一个优选实施例中,要求任何授权节点至少识别并支持该“简单”格式并且能够将它映射到该授权节点上存在的任何本地策略表示格式。对其它格式,如果该授权节点不能处理或不能理解“授权”查询请求的有效负载它应该返回适当的出错响应。对该基本媒体驱动架构的扩展可以包括节点在可接受格式的授权请求上协商的能力,以及节点查询以确定特定的授权服务提供者节点支持什么格式的能力。
在一个实施例中,“授权”查询响应,尽管是可扩展的,但由简单形式组成以表示访问是否被许可。也可以有对这个服务的这个响应的其它形式,包括如果对该特定接口的访问得到许可对该请求节点必须要完成的义务的规定。
11.消费类媒体应用
媒体驱动的实施例可以用来将不同的消费类设备链接到包括个人和局域网、家庭网关、基于IP和非IP的广域网的多级环境中的大量不同服务。例如,已经在一个使用蜂窝电话、游戏平台、PDA、PC基于web的内容服务、发现服务、通知服务和更新服务的互连系统中成功地证明了互操作性。本实施例支持多种媒体格式(例如MP4、WMF等)、多种发现协议(用于在蓝牙上并通过像UDDI、LDAP、活动目录这样的注册的服务发现)以及基于IP的通知和相同设备上的无线SMS(短消息)通知。编排功能用来帮助用户克服互操作障碍。当有对内容的查询时,不同的服务被协调起来以完成,包括发现、查找、匹配、更新、权利交换和通知服务。在优选实施例中,希望用户能够使用大多数任何设备、发出对内容的期望、并且几乎立即被内容和权 利以及交付能力满足以使用且共享该内容。编排能力允许用户在动态多级网络中在任意点从实际上的任何设备察看家庭和基于Internet的内容缓存。可以将这个能力扩展到促进流和播放列表共享的更高级服务,使得临时广播和小范围广播容易发现和连接,并用很多不同的设备同时确保权利得到尊重。
在消费-中心端之外,通常想要找到一种方式来提供不依赖于对媒体格式、权限管理和完成协议的单组标准的端到端可互操作的媒体发布系统。在包括了内容创作者、发布者、设计者、服务提供者、设备制造商和用户的价值链中,在各个段中都有大量本地化的需求。就权限管理来说这尤其正确,这种情况下内容创作者需要向不同的下游价值链元素表达使用权利,使用权利在不同环境中有不同的应用。用户网关通常其关注集合要窄得多,并且终端用户设备通常只有非常简单的关注集合,即只播放内容。
采用动态自配置分布服务的充分自动化系统,内容创作者可以产生并打包内容、表达权利并放心地依赖由其它服务提供者增加的价值以几乎实时地将该内容提供给所有感兴趣的用户,不管他们在哪里或者他们在使用什么种类的设备。媒体驱动的实施例可以用来完成(或近似完成)这个目标,或其中的特征,并且能够提供用于多个服务提供者不必等待或依赖单组端到端标准就能创建并引入使用户和服务提供者都受益的新服务的方法。一个可能的途径允许数据权限管理被分解成具有集中在服务接口的策略管理而不是复制保护上的更自然的关注划分的组件。这种途径可能会在数字内容领域中改变用户和内容创作者之间的紧张关系,因为是以向用户提供有用的信息和即时满意的丰富的服务基础结构提供内容。策略管理能够限制盗版者利用他们的合法服务的程度。事实上,设计媒体驱动是为了允许网络效果鼓励非常丰富的合法服务集的进展产生超出盗版者所能提供的价值。
12.一般企业应用
受策略管理的P2P服务编排看来在商业世界的一些领域中也有有趣的应用,例如供应链管理(SCM)和客户关系管理(CRM)。CRM是关于发现、获得并保持客户。几乎在任何以客户为中心的电子商务战略中它都是核心部分,在那里能够方便地使用集成信息系统和能让客户通过任何想要的通信通道通信的联系中心实现专注于客户。对供 应商来说也是如此。大多数企业具有某种类型的分层结构和部门化,并且在内部工具良好的部门和过程观点不一定对客户和供应商也能工作良好。希望能让企业的部门为它们的部门发布全面的服务接口集合,以使那些服务能由不同客户和供应商(根据策略)以优化他们的过程和服务的方式使用。这是超越企业信息入口的一大步。
今天,大多数企业用相对昂贵的预先包装好的应用程序组(表现为使用专有客户端/服务器基础结构的单一软件应用)实现了CRM。这些应用程序组在大量的配置后在企业内互相协作。web服务允许在通信不仅发生在封闭的LAN还发生在MAN和WAN上的地方使用开放协议和分布式web服务基础结构。这个模式使得远程应用服务提供者(ASP)能够管理CRM应用程序将其作为服务集合交付给来自不同数据中心的商业中的多个实体。企业单位和部门变成了这些服务的入口,有些情况下变成了这些服务的聚集者。在IT产业正在面向服务体系结构/应用(SOA)的领域中经历的发展环境中可以看到这一点。企业和客户到应用相关服务的接口都可以从简单的基于浏览器的应用到更大型的以PC为中心的应用。
这个新模型仍然面对一些重大的障碍,对它被主流接受带来了困难,例如:
信息机密性和访问控制。当ASP提供一个CRM解决方案时,企业可能遇到围绕别的公司手中的敏感客户数据的位置的问题。该公司必须确保只有合法的实体能够访问这个信息。从客户的角度来看,他们现在可能与别的公司有新的关系(可能是明显的或隐藏的)。所需要的是让客户和企业都能在他们的信息上进行访问控制的基础机制。
应用可扩展性。ASP通常与一小组特殊的技术提供商和他们的相关产品或服务结盟。企业通常更喜欢平衡来自不同供应商的不同技术集的灵活性。应用架构不必受限于特定ASP的当前商业关系或技术选择,而希望具有能够让ASP快速有效地集成从不同技术提供商或其它ASP提供的新功能的基础机制。应用架构还应该能够集成由基于(例如)内部开发的扩展的企业单位自己直接提供的CRM服务。
服务层协议(SLA)。企业的服务需要通常不是静态的。相反,它们通常会根据变化的商业条件而变化,包括由竞争驱动的新功能、基于内部商业活动的运转负载特征和正在为特定活动支持客户数量以 及平衡较低费用服务选择的能力。有些情况下这些变化可能需要大量时间的人的干预,但其它情况下可以根据一组指定规则自动化或快速重新配置这些变化。对于这两种情况来说,可以将CRM应用服务看作是根据已有的环境和ASP和商业单位之间授权的协议编排成新的配置。这些类型的应用可以被表征为自-组织。
媒体驱动的实施例在解决这些需要的一些或全部中可以扮演一个角色。例如,媒体驱动的实施例可以用来提供解决构建动态的、面向服务的、自组织的应用(例如CRM,其中只有信任的、获得授权的实体能够访问有关的服务和信息)中的上述要求所需必要的基础构建模块。
图15示出了展示媒体驱动如何被用在向不同方面交付CRM-相关服务的环境中的情况。在图15所示的场景中,商业单位能够使用大量不同ASP提供构造不同类型的CRM应用或提供客户数据上的不同视图给它的组织内的不同部门或它的客户所必需的服务。
该场景示出了使用由该媒体驱动架构的优选实施例提供的功能的几个方面,包括下列中的一些或全部:
-不同CRC技术提供商之间隐式或显式的互操作性。通过说明必要的接口并在ASP一级或直接在现有的CRM软件包上(用服务适配层)提供适当的绑定,企业就能够使用具有来自不同提供商的各种CRM技术的单个ASP或多个ASP。
-通过经由该媒体驱动架构访问客户数据,能够控制它用于访问控制的丰富的策略管理架构。
-部门能够通过服务代理访问对它的应用必需的CRM有关服务,由此将围绕该商业单位与传输协议、数据格式等的兼容性的问题隔离。
-可以控制该媒体驱动架构中部门、数据仓库和应用服务提供商之间的交互。优选地,只有合法授权的实体能够访问该服务、并且服务调用将只在不同的媒体驱动架构参与者能够在它们的交互中建立可接受的信任级别时才会发生。
-服务组合和编排。CRM应用是自组织的,因为应用由来自若干不同ASP被编排在一起的服务组成,或者应用是从单个ASP被交付但仍然由多个服务构成,这多个服务的组成和使用需要对不同客户视角动态配置。由服务提供商公开的功能由服务级协议(SLA)和运行 环境驱动而随时间变化。媒体驱动工作流整理器可以用来编排服务。用于控制这个交互的规则可以用MSDL直接指定或者在SLA中用某种标准方式编码,只要存在为理解并解析该描述的工作流整理器所写的插件。想起工作流整理器与媒体驱动消息泵合作收集并处理必要的消息以确定如何根据需求提供指定服务。
在当前的实施例中,是用一组基于相互信任的PolicyWorks和PolicySpeak策略表示语言的分布式策略管理服务实现媒体驱动。但是,媒体驱动被设计为使用其它策略管理架构和语言,例如IBM的PolicyDirector和XACML,并且在一个优选实施例中媒体驱动提供了策略管理服务接口,以便能够使用任何适当的策略管理架构和/或策略表示语言。
作为背景,PolicyWorks是一组软件组件,可被配置用来发起、部署和实施关于在企业内和企业之间企业和客户之间对基于网络的内容、服务和资源的使用的规则、权利和策略。注意企业策略或控制通常需要和用于识别用户、凭证、目录、内容元数据和其它策略和控制的装置交互。PolicyWorks被设计为被有效地集成到企业中以控制已有的应用、目录和识别系统。PolicyWorks的一个目标是简化对统一对跨越从网络和文件系统访问管理、企业信息入口和资产管理到供应链管理、web服务、数字柜服务和消费媒体订购应用的大量主要应用的策略和规则的安全管理。
在一个优选实施例中,PolicyWorks体系结构基于公开了大量基本接口的逻辑模型:
-受管理选项-这个接口由应用程序(例如上面提到的那些)用来管理这些应用程序关于具体的资源、内容对象或服务的动作。实际上可以用PolicyWorks管理任何对象,提供持久的安全保护、访问控制、用途监控和检查或事务管理。通过这个接口,应用程序可以使对象、服务或资源可用、在策略控制下、确保使用规则和要求得到了遵守。管理组件封装了管理对象必需的方法和操作。PolicyWorks允许为这种管理使用大量可定制的和非定制的解决方案,例如Microsoft Office和Adobe Acrobat中的文档保护机制,以及由J2EE EJB和Microsoft.Net架构提供的代码资源和服务保护机制。
-策略查询-这个接口用来精确地判断对所管理的对象、资源、 或给特定用户的服务、条件集合、环境数据以及任意其它有关因素允许什么动作。对查询的响应可以包括许可和/或附加条件以及该对象的使用所伴随的义务。该管理组件在接收到对查询的响应后负责实施该策略并执行(或使执行)任何义务并监控所请求的使用的结果。
-凭证查询-这个接口由策略管理器用来确定可能在与所管理的操作相关的策略中扮演角色的用户的属性。这个逻辑模块在实际实现中得到了丰富,以便,例如,策略管理器访问内部和外部的大量接口和资源以确定对策略查询的响应,因为可能有大量目录、以及与活动者(用户、策略创建者、资源管理者等等)和所管理的对象自身有关的规则和元数据资源。
-安全服务-这个接口用来为所管理的动作的请求者获得身份管理服务,并为所管理的对象获得持久的保护服务。
-策略管理-这个接口用来管理适合所管理的对象的规则和控制的分布式策略管理数据库。用于创建并维护策略的各种工具使用这个接口。这些工具能够提供非常直接的方式来应用并管理策略。例如,使用这个接口可以创建将策略与文件系统中的共享文件夹相关的工具,并能够允许用户简单地通过在该文件夹中拖放文档就能将该策略应用到文档(或对象)。其它工具可以使用更复杂的创建技术,它们使用任意数量的策略表示语言以非常精确和有目标的术语指定策略。
SCM是另一应用,在那里实际上任何企业的成员都能将他们的外部提供商网络看作一个大的虚拟库房,具有由媒体驱动服务管理的发送顺序策略,并且记帐是通过媒体驱动兼容的通知服务协商的。
尽管为了明确起见已经用一些细节说明了前述发明,但显然在不偏离本发明的基本原理的前提下可对其进行特定的变化和改进。应该注意到有很多可靠方式实现本发明的过程和设备。因此,现有的实施例将被看作说明性而非限制性的,并且本发明也不限于这里所给出的具体细节。
Figure GYZ00000134834711021
图1(附件A的部分)
图2(附件A的部分)
Figure GYZ00000134834711041
图3(附件A的部分)
图4(附件A的部分)
Figure GYZ00000134834711061
图5a
图5b(附件A的部分)
Figure GYZ00000134834711071
图6(附件A的部分)
Figure GYZ00000134834711081
图7(附件A的部分)
Figure GYZ00000134834711091
图8(附件A的部分)
图9(附件A的部分)
图10(附件A的部分)
Figure GYZ00000134834711121
图11(附件A的部分)
Figure GYZ00000134834711131
图12(附件A的部分)
Figure GYZ00000134834711141
图13(附件A的部分)
Figure GYZ00000134834711151
图14(附件A的部分)
Figure GYZ00000134834711161
图15(附件A的部分)
附录B
数字权限管理引擎系统和方法
相关专利申请
附录B对应美国临时专利申请第60/504,524号,名为“数字权限管理引擎系统和方法”,申请人为Gilles Boccon-Gibod,于2003年9月15日提交。该专利申请(附录B)与共同所有的美国临时专利申请第60/476,357相关,后者的发明名称为“用于对等服务编排的系统和方法”,申请人为William Bradley和David Maher,于2003年6月5日提交(“the Bradley et al.application”;附录A)。这里,在附录B中对“the Bradley et al.application”的引用指的是附录A。
版权授权
本专利文档的公开部分包含受版权保护的内容。版权所有人并不反对任何人将本专利文档或专利公开部分复制到WIPO或U.S.专利商标局的专利文件或记录中,但保留其他所有版权。
技术背景
本发明一般性涉及数字信息和服务的分发和使用。更具体地,公开了用于提供、支持和/或使用数字权限管理引擎的系统和方法。
诸如Internet之类的网络已经成为传递数字内容的主要媒介。Web服务标准的出现有望加速这一趋势,使公司能够提供合并多个软件平台并且通过标准化机制与其他web服务协作的复杂服务。
发明内容 
本发明的实施例提供一种利用web服务模型的数字权限管理引擎。与要求相对复杂和重量级的客户端引擎以处理受保护内容的传统的数字权限管理(DRM)系统相比,本发明使得客户端的DRM引擎相对简单,而管理策略由在服务层运行的更丰富的策略管理系统设置。本发明的实施例还在选择媒体格式和加密协议方面提供了更大灵活性,并且能够帮助实现DRM系统之间的互操作。
本发明的优选实施例提供了一种能够用来构建支持DRM的强大 应用的简单、开放和灵活的客户端DRM引擎。在一个优选实施例中,将DRM引擎设计为能够容易地集成到web服务环境中,诸如在Bradley等的应用中所描述的,以及实际上集成到任何主机环境或软件体系结构中。在一个优选实施例中,DRM引擎与具体的媒体格式和加密协议无关,允许设计者按照需要使用灵活地使用标准化的或专用的技术。另外,优选实施例使用的管理模式相对简单,但可以用来表示复杂的关系和业务模型。
本发明的优选实施例能够用来实现下面的部分或全部目标:
简单。在一个优选实施例中,DRM引擎使用最低要求的基于栈的虚拟机(VM)来执行控制程序(例如,执行管理策略的程序)。例如,在一个实施例中VM可以仅由几页代码组成。
模块化。在一个优选实施例中,我们把DRM引擎设计成一个单一的模块,它集成在一个支持DRM的更大型应用内。现在,我们可以从宿主环境中请求许多以前由单个DRM内核执行的功能(例如加密服务),该宿主环境可以向其他代码模块提供这些服务。这使得设计人员能够相对容易地整合标准或专用技术。
灵活性。由于采用模块化设计,DRM引擎的优选实施例可用于从嵌入式设备到通用PC的各种软件环境。
开放。DRM引擎的优选实施例适合作为参考软件,这样,用户就可以使用几乎任何编程语言和在他们能够完全控制的系统中实现代码模块和API。在一个优选实施例中,系统并不强制要求用户采用特定的内容格式或限定内容编码。
无关乎语义。在一个优选实施例中,DRM引擎的基础是一种简单的基于图的模型,该模型将授权请求转换为对图结构的查询。图中的顶点表示系统中的实体,有向边表示这些实体之间的关系。但是,DRM引擎并不需要知道这些顶点和边在任何特定的应用中表示什么。
与Web服务无缝集成。DRM客户端引擎可以采用多种方式使用Web服务。例如,可以通过服务来动态发现授权图中的顶点和边。也可以通过高级Web服务来发现内容和内容许可,并将其传递给DRM引擎。尽管优选实施例的DRM引擎的具体实施例可以配置在许多方面影响Web服务,但是其体系结构与Web服务无关,可以 用作一个独立的客户端DRM内核。
简化的密钥管理。在一个实施例中,可以重新使用授权图拓扑来简化内容保护密钥的派生,而不需要加密重定位。这种密钥派生方法是DRM引擎一个可选特性,但其功能非常强大——系统也可以或者能够与其他密钥管理系统集成。
管理、加密与内容的分离。在一个优选实施例中,管理内容的控制在逻辑上与用于执行管理的加密信息不同。同样,控制和加密信息在逻辑上也与内容和内容格式不同。可以采用分离的方式或一个统一数据包传递每个元素,这样就可以在设计内容传递系统时具有高度的灵活性。
本发明的优选实施例可以用来实现前述的部分或全部目标;但是,应该认识到本发明也可以由不实现以上目标的系统实现。
在一个优选实施例中,DRM引擎包括一个虚拟机(VM),用于决定是否允许对受保护内容进行某些特定操作。我们可以利用最小限度的一组指令将这一控制VM实现为一个简单的基于栈的机器。在一个实施例中,它能够执行逻辑和算术计算,并从主机环境中查询状态信息,以便检查诸如系统时间和计数器状态等参数。
在一个优选实施例中,DRM引擎使用基于图的算法检验DRM价值链中的实体之间的关系。图1示出了这样的授权图的一个示例。如图1所示,该图包括一个节点的集合,这些节点由链路连接。在一个优选实施例中,链接的语义可能会随应用特定的方式发生变化。例如,从Mac顶点到Knox顶点的有向边可能表示Knox是Mac的所有者。从Knox到公共图书馆的边可能表示Knox是该公共图书馆的一名成员。在一个优选实施例中,DRM引擎并不强加或解释这些语义,它只是确定图中是否存在路径。
例如,内容所有者可以创建一个由控制VM解释的控制程序,如果使用设备归公共图书馆的成员所有并被RIAA认可,则允许播放特定的音乐片断。当运行于该设备的控制VM评估此控制程序时,DRM引擎确定在便携式设备和公共图书馆之间以及便携式设备和RIAA认可之间是否存在链接。图中的边与顶点可以是静态的,内置在设备之中,也可以是动态的,通过与主机应用通信的服务被发现。
由于没有对顶点和链接强加语义,因此该优选实施例的DRM引 擎可以支持更大的灵活性。该系统可适用于从传统的基于委托的策略系统到授权域和个人局域网。
在一个优选实施例中,DRM客户端还可以重用授权图来派生内容保护密钥。系统设计人员可能会选择允许链接的存在也表示某些加密信息的共享。在这些情况下,授权图可用于派生内容密钥,而无需显式加密重定位到使用设备。
DRM引擎的优选实施例是模块化的,因而能够集成到许多不同的设备和软件环境中。图2示出了将DRM客户端引擎集成到内容使用设备中的典型集成。在诸如图2所示的系统中,典型的内容使用事件如下进行:
主机应用202一般通过其用户接口204接收一个访问特定内容片段的请求。然后主机应用202将请求和所有相关的DRM引擎对象(最好对于主机应用是不透明的)发送到DRM引擎206。DRM引擎206通过定义良好的接口向主机服务模块208请求附加的信息和加密服务。例如,DRM引擎206可能会询问主机服务208特定链接是否是可信任的,或者要求某些对象被解密。有些必需的信息可能是远程的,这种情况下,主机服务208可通过服务接入点214请求网络化服务提供信息。
一旦DRM引擎206确定特定操作是允许的,它将表明这一点,并将必要的加密密钥返回给主机服务208,主机服务208启动媒体表现210(例如,通过通过扬声器播放内容,在显示屏上显示内容等),其按照需要与加密服务212协作。
图2所示的系统体系结构是如何在应用中使用DRM引擎的简单例子,但是它只是多种可能之一。例如,在其它实施例中,DRM引擎可以在相对复杂的策略管理系统的管理下集成到打包应用中。
应认识到,公开的实施例可以以多种方式实现,包括进程、设备、系统、装置或计算机可读介质。通过以下的附图和详细说明,将更详细地说明本发明的实施例的这些和其它特征和优点。
本发明的简要描述
通过参考以下结合附图的详细说明,将容易理解本发明的实施例,其中相同的参考标号指示相同的结构部件,其中
图1示出了依照本发明一个实施例的授权图。
图2示出了依照本发明实施例的数字权限管理系统。
图3示出了在本发明的优选实施例中DRM引擎可以用于内容保护和管理的各种对象。
图4示出了依照本发明实施例的节点和链接对象。
图5示出了依照本发明实施例的控制虚拟机和DRM引擎的集成。
图6依照本发明一个实施例的编码模块
图7示出了使用节点图来帮助实现内容加密和解密。
详细描述
这里描述新颖的数字权限管理引擎的实施例。如本领域普通技术人员将会理解的,该引擎本身是新颖的,如同它的许多特征、方面、组件和应用一样。下面给出对本发明的有效主体的详细描述。尽管在进行说明时结合了若干实施例,但应该认识到,本发明并不局限于任一实施例,而是包括各种替代、修改和等效体。举例来说,尽管一些实施例是在面向用户的内容和应用的环境下描述的,但熟悉本领域的技术人员会认识到,所公开的系统和方法可以很容易地应用到更广泛的应用中。例如,这些实施例可以很容易地应用于企业内容和应用环境,而没有任何限制。另外,尽管为了帮助全面理解本发明而在以下说明中列出了各种具体细节,但是不具备部分或全部此类细节的一些实施例也可以实施。此外,为了清晰起见,对于与本发明相关的本领域共知的某些技术资料没有进行详细说明,以避免不必要地模糊本发明。
在一个优选实施例中,DRM引擎在一组基本对象或组装块上运行。图3提供了对这些对象的高层次的举例说明。如图3所示,在一个优选实施例中,由内容(Content)对象302表示的数据利用密钥加密。该密钥由内容密钥(ContentKey)对象304表示,内容和密钥之间的绑定由保护器(Protector)对象306表示。管理对象的使用以便对内容解密的规则由控制(Control)对象308表示,内容密钥304和控制308之间的绑定由控制器(Controller)对象310表示。服从系统在内容对象308中的字节码表示的规则的管理下使用内容解密密钥。
内容对象302:在优选实施例中,内容对象302是一个“外部”对象。该对象的格式和存储不是在DRM引擎的控制下,而是在主机应用(例如,它可以是MP4电影文件或MP3音轨等)的内容管理子 系统的控制下。但是,在一个优选实施例中,内容的格式使得允许ID和内容有效负载相关。内容有效负载以独立于格式的方式加密(例如,利用对称加密程序,例如AES)。
内容密钥对象304:在一个优选实施例中,内容密钥对象304包括唯一的加密密钥和相关ID。ID的目的是使得保护器对象306和控制器对象310能够引用内容密钥对象304。内容密钥对象304中封装的实际密钥数据是它自身的加密,这样它仅能由被授权解密该内容的接收者读取。内容密钥对象304优选还可以指定用于加密该密钥数据的密码系统。用于保护该内容密钥数据的密码系统被称为密钥分发系统。可以使用不同的密钥分发系统。
保护器对象306:在一个优选实施例中,保护器对象306包含使得DRM引擎能够找出使用了哪个密钥加密内容对象302中包含的数据的信息。保护器对象306还包含关于使用了哪个加密算法加密该数据的信息。保护器对象306包含一个或多个引用内容对象302的ID,一个引用内容密钥对象304的ID,内容密钥对象中包含加密该数据所使用的密钥。在一个优选实施例中,如果保护器306指向多于一个内容对象302,则所有这些内容对象表示已经使用相同的加密算法和相同密钥加密的数据。
控制对象308:控制对象308中包含的信息使得DRM对象能够在主机应用请求时做出关于是否允许对内容的特定操作的决定。管理内容密钥的使用的规则被作为控制字节码编码在控制对象308中。控制对象308还包含唯一的ID,以便它们可以被控制器对象310引用。在一个优选实施例中,控制对象308是已签名的,这样DRM引擎在使用它做决定之前,可以验证该控制字节码是有效和可信的。可选的,控制对象308的有效性也可以通过验证控制器对象310中包含的安全哈希(当这个信息可用时)而得到。
控制器对象310:控制器对象310包含使得DRM对象能够找出哪个控制对象308管理由内容密钥对象304表示的一个或多个密钥的使用的信息。在一个优选实施例中,控制器对象310还包含它们引用的内容密钥对象304中包含的密钥数据的哈希值,这样密钥数据和内容密钥对象304之间的绑定就不容易被篡改。控制器对象310还可以包含帮助验证它们所关联的控制对象308的完整性的信息。控制 器对象310优选是已签名的,这样DRM引擎能够信任内容密钥304和管理它的控制对象308之间的绑定的有效性,以及内容密钥ID和实际的密钥数据之间的绑定的有效性。在控制器对象310中包括控制器对象310所引用的控制对象308的哈希的实施例中,不需要单独验证控制对象308的签名就能够推导出控制对象308的有效性。
如同前面结合图1所示,在一个优选实施例中,DRM引擎使用一种基于图的算法检验DRM价值链中的实体之间的关系。如图1所示,该图包括以链接相连的节点的集合。节点对象表示DRM概要中的实体。在一个优选实施例中,DRM引擎不具有关于节点表示什么的隐式或显式的语义。
使用DRM引擎的给定部署(DRM概要)将定义存在哪种类型的规则,以及不同的节点对象代表什么角色和身份。如图4所示,通常使用节点对象的属性表示语义信息。链接对象表示节点之间的关系。链接对象还可选地包含某些加密数据,这些数据使得DRM引擎能够使用该链接进行内容密钥的派生计算。与节点相似,在一个优选实施例中,DRM引擎不具有关于链接关系表示什么的隐式或显式的语义。在特定DRM概要中,取决于链接发自哪个节点和到达哪个节点,链接关系的意义可以表示成员关系、所有关系、关联和/或其它类型的关系。例如,在一个典型的DRM概要中,一些节点对象可以表示用户,其它节点对象可以表示用户,另一些可以表示用户群。在这个环境中,设备和用户之间的链接可以表示所有关系,用户和用户群之间的链接可以表示成员关系。图4示出了节点和链接对象的例子。
节点402:节点对象表示系统中的实体。节点对象的属性定义节点表示什么的某些方面,诸如节点对象在DRM概要的环境中表示的角色或身份。在一个优选实施例中,节点对象还具有机密性不对称密钥对,该密钥对用于将机密信息定位到对该节点对象的机密部分具有访问权限的子系统(通常是该节点表示的实体,或者是负责管理该节点的一些实体)。定位到一个节点的机密信息优选利用该节点的机密性公共密钥加密。在使用用于内容密钥分发的可选的内容密钥派生系统的实施例中,内容保护非对称密钥对和内容对象对称密钥结合链接对象一起使用。
链接404:在一个优选实施例中,链接对象404是已签名的声明, 其声明在其顶点是节点对象的图中,在“发出”和“到达”节点之间存在一条有向边。对于给定的节点和链接结合,如果在图中的节点X顶点和节点Y顶点之间存在一条有向路径,那么在节点X和节点Y之间存在一条路径。当节点X和节点Y之间存在路径的时候,说节点Y是从节点X可到达的。因而使用链接对象所表示的声明表达哪个节点是从其它节点可到达的。管理内容对象的控制可以使用特定的目标节点从表示请求对内容对象进行操作的实体的节点的可到达性,作为允许特定操作发生的条件。例如,如果节点D表示想要对一个内容对象执行播放操作的设备,管理该内容对象的控制可以测试表示特定用户的特定节点U是否是可到达的。为了确定节点U是否是可到达的,DRM引擎检验是否存在一个链接集合能够建立节点D和U之间的路径。
DRM引擎优选在使用链接对象确定节点图中存在路径之前先验证它们。取决于用来签署链接对象的证书系统(例如x509v3)的特定特征,可以给予链接对象有限的生命周期,废止链接对象等。在一个优选实施例中,管理哪些实体可以签署链接对象、可以创建哪些链接对象和链接对象的生命周期的策略也可以不直接由DRM引擎处理。这些策略在DRM引擎之外存在,并且通常将利用节点的属性信息。例如,在某个策略下已经被授予创建设备节点和用户节点之间的链接对象的能力的实体,很可能要检测它只创建了在具有指示它们确实代表一个设备的属性的节点对象和具有指示它们代表一个用户的属性的节点之间的链接。
最后,链接对象可以包含加密数据,该数据使得节点的内容保护密钥能够用于密钥分发。在一些实施例中,所述加密数据除了元数据之外还包含“发出”节点的私有密钥和/或对称内容保护密钥,其是利用内容保护公共密钥或“到达”节点的内容保护对称密钥加密的。在下面的题为“节点、链接和内容保护”的章节中提供了关于节点和链接的关系和操作的其它信息。
因为在一个优选实施例中,DRM引擎不隐式或显式地指定附加到这些基本对象上的语义,使用DRM引擎的系统将参与到那些对象的一个或多个使用模式中,其将那些对象放入一个语义环境中。这些语义环境将被称为DRM概要。在这个意义上,可以将DRM引擎对 象看作用于构建DRM系统的组装块。
以下的段落举例说明了可以使用DRM引擎对象构建的DRM概要的典型类型。
示例1:用户、PC和设备
在这个DRM概要示例中,定义了以下实体:用户(使用内容的个体)、PC(运行使用内容的软件的计算机)和设备(使用(例如播放)内容的硬件和软件组合)。在这个示例概要中,任何用户可以拥有无限数目的设备,并且可以与最多预定数目的PC(例如,4台PC)相关联。可以通过允许将内容绑定到用户的规则(例如,可以检测播放内容的PC或设备属于给定用户或与之相关联)管理内容。
用户、PC和设备,每一个都被分配了一个节点对象。这些节点对象具有指示它们是否表示一个用户、PC或设备的“类型”属性。
后端系统管理用户身份,并且创建用户节点以及PC节点和用户节点之间的链接对象。在将一个用户节点发送到PC软件实例之前,后端服务器将会通过在用户信息数据库中查找用户和确定希望同特定PC关联的该用户是否达到了4的限制条件,来执行“每个用户4台PC”的策略。在一些实施例中,系统可以为用户提供删除已有的PC-用户关联的方法,使得他们能够随着时间过去改变与他们相关联的PC的设置。PC软件将保持PC-用户链接对象,并且使用它们(只要它们有效)。
PC软件被授予了与设备和用户关联的能力。这意味着,除了管理PC节点外,PC软件还被给定了管理用户节点对象的责任。该软件具有访问那些节点的机密部分的权限。当一个用户想同一个设备相关联的时候(因为她想在该设备上播放她的内容)需要存在从该设备节点到该用户节点的一个链接对象。如果该链接对象不存在,PC软件将创建它,并且令其对所述设备可用。该设备将保持该链接对象,并且使用它(只要它保持有效)。
为了将内容绑定到用户,打包者应用将为该内容选择一个ID或使用现有的一个ID。打包者创建一个加密密钥和相关的内容密钥对象,以及将内容对象和内容密钥对象绑定的保护器对象。然后该打包者创建一个具有控制程序(优选以控制VM字节码编译)的控制对象,该控制程序将在并且只在请求执行一个播放操作的用户节点是从PC 或设备节点可到达的时候,允许“播放”操作。通常,将把控制、控制器、保护器和内容密钥对象嵌入在打包的内容中(如果合适的话),这样PC和设备就不需要单独获取它们。
当一个设备或PC想要播放内容的时候,DRM引擎将为该内容的内容ID找到保护器对象,然后找到该保护器引用的内容密钥对象,然后是引用该内容密钥对象的控制器对象,最后找到该控制器引用的控制对象。DRM引擎将执行该控制器对象的控制程序,该程序将检测用户节点是否是可到达的。如果设备或PC对象具有证明在它们的节点和所述用户节点之间存在路径的必要链接,那么控制器程序将允许使用内容密钥对象中表示的密钥,并且该设备或PC的媒体表现引擎将解密该内容并且表现该内容。
示例2:短暂登录
第二个示例使用了一个几乎与前面的例子所使用的相同的系统,该系统具有新增的特征:管理创建PC节点和用户节点之间的链接对象的策略允许不超过例如12个小时的短暂登录,只要用户还没有在其他PC上拥有短暂登录。这个特征的目的是允许,例如,用户将他的内容拿到朋友的PC上,登录到那台PC一段时间和在朋友的PC上播放他的内容。当用户想要登录到朋友的PC,他输入他的登录凭证(这可以是用户名/密码、移动电话身份认证、智能卡、或该系统的策略下允许的任何身份认证系统),后端系统检验该链接所需的用户节点和PC节点的属性,并且证实不存在仍然有效的短暂登录。如果满足了这些条件,后端服务创建连接该PC和该用户的链接对象,该链接对象具有符合要求的登录持续时间限制(例如,少于12个小时)的有效周期,以遵守该策略。令该链接现在允许PC播放该用户的内容,直到链接期满。
控制虚拟机
控制虚拟机(或“控制VM”)是由DRM引擎的优选实施例使用以便执行管理访问内容权限的控制程序的虚拟机。以下是对适合DRM引擎体系结构的控制VM的描述,以及对该VM的基础元件的描述,其后是关于存储模型和指令集合的更详细的说明。
在一个优选实施例中,控制VM是一个相对较小的虚拟机,经设计它可以使用多种编程语言来简单实现。在一个优选实施例中,控 制VM基于一个面向栈的指令集,该指令集实际上按最低要求设计,没有过多地考虑执行速度或代码密度。但是,应理解,如果特定的应用需要考虑执行速度和/或代码密度,可以使用常规技术(如数据压缩)来提高性能。
在一个优选实施例中,控制VM适合用低级语言或高级语言编写,支持汇编、C和FORTH等语言。也可以容易地实现其他语言的编译器,如Java语言或定制语言等。
在一个优选实施例中,与直接在处理器上或在硅片中运行相反,控制VM被设计为驻留在主机环境中。控制VM的实际主机环境是DRM引擎。图5示出了在本发明的优选实施例中控制VM如何和DRM引擎集成。
控制VM在其主机环境中运行,主机环境实现了VM执行程序时所需的一些功能。通常,控制VM在DRM引擎内运行,DRM引擎实现它的主机环境。
控制VM通过执行存储在代码模块内的指令来运行程序。有些指令可以通过系统调用来调用在程序自身外实现的功能;系统调用可由控制VM自身实现,也可委托给主机环境。
现在将描述控制VM的优选实施例的一些基本元素。
执行模型
控制VM执行存储在代码模块中的指令,执行时,这些代码作为载入到内存的字节代码流。控制VM维护着一个名为程序计数器(PC)的虚拟寄存器,指令执行时,该计数器递增。VM顺序执行每条指令,直到遇到OP_STOP指令,在调用栈为空时遇到OP_RET指令,或发生异常。指令跳转被指定为相对跳转(指定为从当前PC值的字节偏移量)或绝对地址。
内存模型
在优选实施例中,控制VM的内存模型相对比较简单。VM内存分为数据段(DS)和代码段(CS)。数据段是单一、平面、连续的内存空间,起始地址是0。数据段一般是在主机应用或主机环境的堆内存内分配的一列字节。对于特定的VM实现,内存空间的大小优选固定为最大值,试图访问内存地址范围之外的地址将导致出错,并终止程序的运行。数据段可能由VM同时载入的多个代码模块共享。数 据段中的内存可以由内存访问指令访问,该访问可能是32位的,也可能是8位的。32位内存访问可以使用big-endian字节顺序来完成。这里并没有假定VM可见内存与主机管理的内存(主机CPU虚拟内存或物理内存)完全对应。
在一个实施例中,代码段是平面、连续的内存空间,起始地址为0。代码段一般是在主机应用或主机环境的堆内存内分配的一列字节。
在一个优选实施例中,控制VM可以加载多个代码模块,所有代码模块可以共享同一个数据段(每个模块的数据最好载入到不同的内存地址),但是每个代码模块都有自己的代码段(举例来说,最好代码模块的跳转指令不可能导致直接跳转到另一代码模块中的代码)。
数据栈
在一个优选实施例中,VM具有数据栈的概念,它表示存储在数据段中的32位数据单元。VM维护一个名为栈指针(SP)的虚拟寄存器。在重置后,SP指向数据段的末尾,栈向下增长(数据推入数据栈时,SP寄存器的值减小)。根据引用栈数据的指令,栈上的32位值被解释为32位的带地址整数、32位带符号整数。
调用栈
在一个优选实施例中,控制VM管理一个调用栈,用于嵌套式子程序调用。内存访问指令不能直接读写被推入栈的值,但是VM在执行OP-JSR指令和OP-RET指令时可以间接使用被推入栈的值。对于给定的VM概要,该返回地址栈的大小最好固定为最大值,这样将允许一定数量的嵌套调用,不能超过这个数量。
指令集
在一个优选实施例中,控制VM使用非常简单的指令集。即使指令的数量有限,还是可用它们来编写简单的程序。在一个优选实施例中,指令集是基于栈的:除了OP-PUSH指令,任何指令都没有直接操作数。操作数从数据栈读取,并且结果被推入数据栈中。在一个优选实施例中,VM是32位的VM:所有指令都在32位栈操作数上工作,这些操作数表示内存地址或带符号整数。带符号整数用2的补数二进制编码表示。
下面示出了一个优选实施例中使用的所有示例性指令:
Figure GYZ00000134834711291
Figure GYZ00000134834711301
模块格式
在一个优选实施例中,代码模块以原子格式存储,其格式与MPEG-4文件格式中使用的原子结构相同。一个原子包括32位,存储为big-endian字节顺序的4-八位字节,跟随一个4-八位字节类型(通常是对应字母表中字母的ASCII值的八位字节),再之后跟随该原子的载荷(大小一8个八位字节)。
图6示出了一个示例性代码模块,下文中予以描述。
pkCM Atom:该pkCM Atom是顶级代码模块单元,包含一个次级单元序列。
pkDS Atom:该pkDS Atom包含一个可载入数据段的内存映像。该单元的载荷是一个原始八位字节数值序列。
pkDS Atom:该pkDS Atom包含一个可载入代码段的内存映像。该单元的载荷是一个原始八位字节数值序列。
pkEX Atom:该pkEX Atom包含一个导出项列表。每一个导出项的组成部分有:名称,以8位名称长度编码,随后是名称的字符,包括一个结尾的0,接着是一个32位的整数,代表该指定项的字节偏移(这是相对储存于pkCS Atom单元中的数据的起点的偏移)。
模块载入器
在一个优选实施例中,控制VM负责载入代码模块。当一个代码模块被载入时,编码于pkDS Atom之中的内存映像被载入到数据段中的一个内存地址。该地址是由VM载入器选择的,并存储于DS的伪寄存器内。编码于pkCS Atom之中的内存映像被载入到代码段的一个内存地址。该地址是由VM载入器选择,并存储于代码段的伪寄存器内。
系统调用
控制VM程序可以调用在其代码模块的代码段以外实现的功能。这是通过使用OP_CALL指令来实现的,该指令带有一个指定系统调用号的整数栈操作数。根据该系统调用,该实现可能是位于另一不同代码模块(例如公用图书馆)中的控制VM字节代码例程,由VM以VM本地执行方式直接执行,或者委托给一个外部软件模块,例如VM的主机环境。
在一种实施例中,指定了几个系统调用号:
SYS_NOP=0:这一调用是非操作调用,它只是返回(并无操作),主要用于测试VM。
SYS_DEBUG_PRINT=1:打印出一串文本以便调试输出。这一调用会得到一个单一栈自变量,指定包含所要打印之以零位终止的字符串的内存位置的地址。
SYS_FIND_SYSCALL_BY_NAME=2:确定VM是否执行一个指定系统调用。如是的话,将系统调用号返回到栈上;否则返回数值-1。这一调用会得到一个单一栈自变量,指定包含所请求之以零位终止的系统调用名称的内存位置的地址。
系统调用号分配
在一种优选实施例中,控制VM保留0到1023系统调用号用于强制性系统调用(VM的所有概要必须执行的系统调用)。
系统调用号16384到32767可供VM动态分配(例如由SYS_FIND_SYSCALL_BY_NAME返回的系统调用号可由VM动态分配,而且在所有VM实施例中不必都是同样号码)。
标准系统调用
在一个优选实施例中,提供了几个标准系统调用以便于编写控制程序。这种标准系统调用可能包括旨在从主机获得一个时间戳的调用、 确定一个节点是否可访问的调用和/或类似者。系统调用最好具有动态确定的号码(即其系统调用号可通过调用系统调用SYS_FIND_SYSCALL_BY_NAME、并且将其名称作为传递的参数而获得)。
链接,规则和内容加密
下面提供了在DRM引擎和/或系统的优选实施例中的元素、群组、规则、声明和密钥管理之间的关系的其它信息。
链接和节点
如前所述,DRM系统可以概念化为具有节点和链接的集合。节点可以表示不同的实体,但是通常表示实体的群组(一些只有一个身份的组),并且节点可以由链接相连。一个链接可以视为表示一个节点“属于”它所链接的节点表示的群组的声明。
在一个策略的管理下,链接通常是由实体而不是用户和/或DRM引擎创建者建立的声明。如何建立声明和管理声明可以用任何合适的方式进行;但是,链接优选是可信的。在实践中,这通常将意味着存在一个链接的声明表示将被签署,这样需要基于该链接做出决定的部分系统可以以可信模式工作。
由节点之间存在链接表示的关系是可传递的。链接可以由节点图中的有向边表示,如果在图中在Na和Nx之间存在有向路径,那么可以说节点Na属于群组节点Nx。
下面的段落解释了如何使用这些节点图表示规则条件,以及如何管理加密密钥。
规则和成员关系条件
所述系统可以用来通过规则管理内容,所述规则以控制程序表示,控制程序确定请求的特定操作(和意向)是否被允许,并且,如果是被允许的,结果或义务是什么。在一个优选实施例中,规则是小的控制程序,其采用数个参数作为输入(诸如内容身份识别信息、时间/日期、特定计数器的值、请求操作的元素的ID等),并且决定是否允许特定的操作发生。如果允许一个操作发生,程序还能够执行该规则声明的义务(例如,更新一个计数器)。在一些实施例中,该程序能够处理的输入和输出的类型可能相当有限。
一条规则可以表示如下事实:一个元素能够执行一个操作的条件 是从表示请求操作的元素的节点到一个目标节点或一组目标节点存在一条路径(或一组路径),每条路径表示一个规则(例如,表示诸如“如果一个元素是内容的订阅者群组中的一个成员,则它能播放该内容”的规则)。两个节点Na和Nb之间的链接是声明Na属于Nb表示的群组的可信任的声明。如果在规则的执行点(例如运行规则程序的地方)可能获得经过图到达所有要求的目标节点所需的所有链接,那么所述条件被满足。这个节点图有时将被称为成员关系图,该图中的链接称为。
内容加密
设计与所述系统一起工作的适应元素将能够理解和执行合适的规则,当它们想要对受保护的内容片断执行操作时。但是,通常不能信任非适应系统以这种方式使用内容。因而,希望通过使用加密技术保护内容。在一个优选实施例中,利用内容密钥Kc加密内容,通常对于要保护的内容内容密钥是唯一的。当一个元素想要对内容执行操作,它将首先运行规则程序,得到答案是/否。如果规则允许该元素执行该操作,该要素将需要获取内容密钥Kc。在一个优选实施例中,在规则系统、节点/链接图和内容保护系统(能够使该要素以有效方式获得密钥,而不需要外部实体“显式”地将Kc发送给请求节点)之间存在关系。
在有个优选实施例中,这是通过概念化作为图中节点的元素/对象之间的关系实现的。一些节点可以同成员关系图中使用的节点相同,但这不是必要的。但是,在简单系统中,期望这个图是成员关系图的一个子集。这个图将被称为保护图。
系统中的每个节点N除了其它属性,可以具有一个关于内容保护密钥Kc[N]或密钥对的属性。其它属性可能包括:用于签名的公共/私有密钥对和该节点的潜在目标信息。为了说明起见,下面的例子显示使用单个密钥,但是应该理解相同元素也可以使用密钥对。在这个图中,两个节点Na和Nb之间的链接是可信声明,其声明具有Kc[Na]的任何节点可以计算Kc[Nb]。通常,这意味着该链接将包含用Kc[Na]加密的Kc[Nb]的表示。这允许追踪节点之间的链接和计算目标节点的Kc。
用于创建到密钥的路径的图和用于表示成员关系条件的图可以不 相同,但是在简单的例子中,可以重用相同的图和链接,从而创建节点图的“平行”或可替换的使用:现在经过为检验规则条件而经过的相同路径来计算内容包含密钥。有权访问能够跟随它到达节点Nb的链接的任何节点Na能够计算Kc[Nb],即使没有显式地将Kc[Nb]定位为Na的目标。
通常可以以如下方式使用这些密钥:利用内容密钥K[Ci]加密内容Ci。可以创建一个或多个规则,该规则能够除了其它之外能够检验在请求操作的节点和表示群组的一列“条件”目标节点之间存在路径。该规则可以包括能够执行对条件(可能还包括义务方面)的检验的程序,以及包括受保护的K[Ci]的拷贝,对K[Ci]的保护是通过利用请求节点必需属于的节点的Kc[Ni]节点内容加密密钥的每一个进行连续加密而实现的。
当一个节点Na想要对内容Ci执行一个操作时,它将运行管理该内容的规则程序。如果该规则要求Na在一个或多个群组Np、Nq等中的成员关系,它将检验到Np、Nq等的必要链接是否存在,并且决定是否允许该操作。如果允许该操作,该系统将确定在保护图中它是否具有到节点Nm、Nn等(其内容保护密钥Kc[Nm]和Kc[Nn]等在获取内容密钥K[Ci]的过程中需要使用,在规则中能够发现内容密钥K[Ci]的加密拷贝)的一组链接。通过按照由保护元数据为该内容密钥指定的顺序,利用所述节点的内容加密密钥Kc[Nm]和Kc[Nn]等解密这个加密的内容密钥,将获得K[Ci]。又,在简单系统中,节点Np、Nq的集合通常和Nm、Nn的集合相同。
图7示出了说明节点图的双重使用的示例场景。参看图7,iPOD是内容播放设备。Nip1是表示该设备的节点。Kip1是与Nip1相关联的内容加密密钥。Gilles是iPod1的所有者,Ng是代表Gilles的节点。Kg是与Ng相关的内容加密密钥。
PubLib是一个公共图书馆。Np1代表该图书馆的成员,Kp1是与Np1相关联的内容加密密钥。ACME代表所有ACME制造的音乐播放器。Namp代表设备的类别,Kamp是与此组相关联的内容加密密钥。
L1是一个从Nip1到Ng的链接,意味着iPod1属于Gilles。L2是一个从Ng到Np1的链接,意味着Gilles是公共图书馆的成员。L3是 一个从Nip1到Namp的链接,意味着iPod1是一台ACME设备。
C1是一个由公共图书馆供其成员使用的电影文件。Kc1是一个用以为C1加密的密钥。GB[C1]是C1的管理信息(例如,用于管理对该内容的访问的规则和相关信息)。E(a,b)表示用密钥“a”来加密“b”。
为说明起见,假定需要制定一条规则,使设备只要满足下列条件即可播放内容C1:(a)该设备的拥有者是图书馆的成员,而且(b)该设备是由ACME制造的。
内容C1是用Kc1来加密的。创建规则程序以及加密的内容密钥RK[C1]=E(Kamp,E(Kp1,Kc1))。规则程序和RK[C1]都可以纳入该内容的管理模块GB[C1]。
iPod1接收C1和GB[C1]。例如,此二者均可打包在同一文件中,或分别接收。iPod1在Gilles购买后首次安装设备时即接收L1。在Gilles向公共图书馆支付收视费时iPod1即接收L2。iPod1在制造时接收L3(例如L3是内置的)。
iPod1从L1、L2和L3可以检查出Nip1有一条通向Ng(L1)、Np1(L1+L2)和Namp(L3)的图路径。iPod1打算播放C1。iPod1运行从GB[C1]中找到的规则。该规则可以检查Nip1是否确实是一ACME设备(到Namp的路径),并属于公共图书馆的成员(至Np1的路径)。因此,规则返回“是”,以及所定列表(Namp、Np1)。
iPod1用L1计算出Kg,然后用L2从Kg计算出Kp1。iPod1还使用L3计算出Kamp。iPod1将Kp1和Kamp应用于GB[C1]中找到的RK[C1]并计算出Kc1,然后用Kc1来解密并播放C1。
如同上例所示,当节点密钥是对称密钥时,内容打包者需要有权访问它想要将内容“绑定”于其上的节点的密钥。要实现这一点,可创建一个代表打包者的节点,以及连接该节点与它要将规则绑定于其上的节点之间的链接。例如,这一点亦可通过一项服务“带外”实现。但在某些情况下,采用对称密钥不可能,也不实际。这种情况下,可以向需要绑定的节点分配一个密钥对而无需共享知识。此时,打包者可使用目标节点的公共密钥将内容密钥加密,从而把内容密钥绑定到这个节点。欲获得解密密钥,客户端须有权通过到该节点的链接访问节点的私有密钥。
在最一般的情况下,用于规则的节点和用于计算内容加密密钥的节点不必是同一个。使用相同节点是很自然的,因为管理内容的规则和用来加密内容的密钥之间关系密切,但使用相同节点不是必需的。在一些系统中,若干节点可用于内容保护密钥,但不用于表示成员关系条件,或正相反,并且在某些情况下,可以使用两个不同的节点图,一个用于规则,另一个用于内容保护。例如,一条规则可能说所有Np1组的成员均可访问内容C1,但是内容密钥Kc1可能不受Kp1保护,却受代表所有公共图书馆、不单是Np1的节点Nf的节点密钥Kf保护。或者一条规则可能说你必须是Namp的成员,然而内容加密密钥却只绑定到Np1。
尽管为了说明起见前面描述了一些细节,应理解在不偏离本发明的原则的情况下可以进行某些变化和修改。应注意到,存在很多实现本发明的过程和设备的替代措施。因此,本发明的实施例被认为是说明性的,而不是限制性的,并且本发明并不局限于这里给出的特定细节。
Figure GYZ00000134834711371
图1(附件B的部分)
图2(附件B的部分)
图3(附件B的部分)
Figure GYZ00000134834711401
图4(附件B的部分)
Figure GYZ00000134834711411
图5a
Figure GYZ00000134834711412
图5b(附件B的部分)
Figure GYZ00000134834711421
图6(附件B的部分)
Figure GYZ00000134834711431
图7(附件B的部分)
Figure GYZ00000134834711441
Figure GYZ00000134834711451
Figure GYZ00000134834711491
Figure GYZ00000134834711501
Figure GYZ00000134834711511
Figure GYZ00000134834711551
Figure GYZ00000134834711561
Figure GYZ00000134834711571
Figure GYZ00000134834711581
Figure GYZ00000134834711591
Figure GYZ00000134834711601
Figure GYZ00000134834711611
Figure GYZ00000134834711631
Figure GYZ00000134834711651
Figure GYZ00000134834711661
Figure GYZ00000134834711671
Figure GYZ00000134834711681
Figure GYZ00000134834711691
Figure GYZ00000134834711701
Figure GYZ00000134834711711
Figure GYZ00000134834711721
Figure GYZ00000134834711731
Figure GYZ00000134834711741
Figure GYZ00000134834711751
Figure GYZ00000134834711761
Figure GYZ00000134834711771
Figure GYZ00000134834711781
Figure GYZ00000134834711801
Figure GYZ00000134834711811
Figure GYZ00000134834711831
Figure GYZ00000134834711841
Figure GYZ00000134834711851
为清晰起见而在前述部分做了详细说明,但显而易见,在随附权利要求范围内可能实施某些更改和修正。须注意的是,本发明的过程和设备的实现可有许多不同的方法。因此,现有实施例应被视为说明性的而非限制性的,而且发明的有效主体不应局限于此处所给的细节,而是可以在随附权利要求的等同范围内加以修订。

Claims (16)

1.一种用于编排在具有充分可互操作性的网络对等方之间提供的服务以便能够通过参与分布式应用交换价值的系统,所述系统包括:
第一服务提供者,所述第一服务提供者作为所述网络对等方的第一网络对等方,其具有第一服务适配层,所述第一服务适配层公开第一服务接口,该接口使网络对等方能够通过第一可发现服务绑定,访问由第一服务提供者所提供的第一服务,所述第一服务提供者包括第一工作流整理器;
服务用户,所述服务用户作为所述网络对等方的第二网络对等方,其具有服务接入点,该服务接入点访问由第一服务提供者所公开的第一服务接口,发现第一绑定并使用该绑定调用第一服务,所述服务用户包括能够使网络对等方访问第一服务的网关;及
第二服务提供者,所述第二服务提供者作为所述网络对等方的第三网络对等方,其具有第二服务适配层,所述第二服务适配层公开第二服务接口,该第二服务接口使网络对等方能够通过第二可发现服务绑定,访问由第二服务提供者所提供的第二服务,该第二服务提供对服务注册中心的访问,所述服务注册中心具有包含用于查找和访问第一服务的信息的目录项,所述第二服务提供者包括第二工作流整理器,该第二工作流整理器编排必要的步骤使服务用户调用来自第二服务提供者的第二服务并且根据第二服务提供者设定的规则管理与服务用户对第二服务的调用有关的消息;
其中,第一工作流整理器编排必要的步骤使服务用户通过第一工作流整理器处的公共接口调用来自第一服务提供者的第一服务,根据第一服务提供者设定的规则管理与服务用户对第一服务的调用有关的消息,并且获得调用第一服务的授权,
其中所述服务接入点访问所述目录项并且使用所述信息查找和调用第一服务。
2.权利要求1中的系统,其中第一服务提供对位于远程的基于Internet服务器中的加密媒体内容的限制访问,并且第一工作流整理器包含确认服务用户是否有权访问该内容的第一控制程序,并且若有权,则通过第一服务适配层找到内容并提供给服务用户。
3.权利要求1中的系统,其中第一服务接口是采用WSDL规定的。
4.一种用于编排网络对等方之间提供的服务的系统,该系统包括:
第一服务提供者,所述第一服务提供者作为所述网络对等方的第一网络对等方,其具有第一服务适配层,所述第一服务适配层公开第一服务接口,该第一服务接口使网络对等方能够通过第一可发现服务绑定,访问由第一服务提供者所提供的第一服务,所述第一服务提供者包括第一工作流整理器;
服务用户,所述服务用户作为所述网络对等方的第二网络对等方,其具有服务接入点,该服务接入点访问由第一服务提供者所公开的第一服务接口,发现第一可发现绑定并使用该第一可发现绑定调用第一服务;及
第二服务提供者,所述第二服务提供者作为所述网络对等方的第三网络对等方,其具有第二服务适配层,所述第二服务适配层公开第二服务接口,该接口使网络对等方能够通过第二可发现服务绑定,访问由第二服务提供者所提供的第二服务,该第二服务提供对服务注册中心的访问,所述服务注册中心具有包含用于查找和访问第一服务的信息的目录项,所述第二服务提供者包括第二工作流整理器,该第二工作流整理器编排必要的步骤使服务用户调用来自第二服务提供者的第二服务,并且根据第二服务提供者设定的规则管理与服务用户对第二服务的调用有关的消息;
其中,第一工作流整理器编排必要的步骤使服务用户通过第一工作流整理器处的公共接口调用来自第一服务提供者的第一服务,根据第一服务提供者设定的规则管理与服务用户对第一服务的调用有关的消息,并且获得调用第一服务的授权,以及
其中所述服务接入点访问所述目录项并使用所述信息查找并调用第一服务。
5.权利要求4中的系统,其中服务注册中心是一个UDDI注册中心。
6.一种用于编排网络对等方之间提供的服务的系统,包括:
第一服务提供者,所述第一服务提供者作为多个网络对等方的第一网络对等方,其具有第一服务适配层,所述第一服务适配层公开第一服务接口,该接口使网络对等方能够通过第一可发现服务绑定,访问由第一服务提供者所提供的第一服务,所述第一服务提供者包括第一工作流整理器;
服务用户,所述服务用户作为所述多个网络对等方的第二网络对等方,其具有服务接入点,该服务接入点访问由第一服务提供者所公开的第一服务接口,发现第一可发现绑定并使用该第一可发现绑定调用第一服务;及
第二服务提供者,所述第二服务提供者作为所述网络对等方的第三网络对等方,其具有第二服务适配层,所述第二服务适配层公开第二服务接口,该接口使网络对等方能够通过第二可发现服务绑定,访问由第二服务提供者所提供的第二服务,该第二服务提供对服务注册中心的访问,所述服务注册中心具有包含用于查找和访问第一服务的信息的目录项,所述第二服务提供者包括第二工作流整理器,该第二工作流整理器编排必要的步骤使服务用户调用来自第二服务提供者的第二服务,并且根据第二服务提供者设定的规则管理与服务用户对第二服务的调用有关的消息;
其中,第一工作流整理器编排必要的步骤使服务用户通过第一工作流整理器处的公共接口调用来自第一服务提供者的第一服务,根据第一服务提供者设定的规则管理与服务用户对第一服务的调用有关的消息,并且获得调用第一服务的授权,
其中所述服务接入点使用信任管理证书确证所述服务用户有权访问第一服务,所述信任管理证书用于确认第一服务只能由限定为授权的服务用户访问,并且被控制程序使用的所述信任管理证书限制对第一服务的访问。
7.权利要求6中的系统,其中信任管理证书是一个X.509证书。
8.权利要求6中的系统,其中信任管理证书是一个SSL证书。
9.一种用于编排在具有充分可互操作性的网络对等方之间提供的服务以便能够通过参与分布式应用交换价值的方法,该方法包括以下步骤:
从作为对等网络的第一网络对等方的第一服务提供者的第一服务适配层公开第一服务接口,该第一服务接口使网络对等方能够通过第一可发现服务绑定访问由第一服务提供者所提供的第一服务;
从作为所述网络对等方的第二网络对等方的第二服务提供者的第二服务适配层公开第二服务接口,该第二服务接口使网络对等方能够通过第二可发现服务绑定,访问由第二服务提供者所提供的第二服务,该第二服务提供对服务注册中心的访问,所述服务注册中心具有包含用于查找和访问第一服务的信息的目录项;
从作为所述网络对等方的第三网络对等方的服务用户的服务接入点,根据用于查找和访问第一服务的信息访问由第一服务提供者所公开的第一服务接口,发现第一可发现绑定并使用该第一可发现绑定调用第一服务;
利用包含在第二服务提供者内的第一工作流整理器,根据第二服务提供者设定的规则来管理与服务用户对第二服务的调用有关的消息;
利用第二工作流整理器编排必要的步骤使服务用户调用来自第二服务提供者的第二服务;
利用包含在第一服务提供者内的第二工作流整理器,根据第一服务提供者设定的规则来管理与服务用户对第一服务的调用有关的消息;以及
利用第二工作流整理器编排必要的步骤使服务用户通过第二工作流整理器处的公共接口调用来自第一服务提供者的第一服务并且获得调用第一服务的授权。
10.权利要求9中的方法,其中第一服务提供对位于远程的基于Internet的服务器中的加密媒体内容的限制访问,并且第二工作流整理器包含确认服务用户是否有权访问该内容的第一控制程序,并且若有权,则通过第一服务适配层找到该内容并提供给服务用户。
11.权利要求9中的方法,其中第一服务接口是采用WSDL规定的。
12.一种编排服务的方法,包括以下步骤:
从作为多个网络对等方的第一网络对等方的第一服务提供者的第一服务适配层公开第一服务接口,该第一服务接口使网络对等方能够通过第一可发现服务绑定访问由第一服务提供者所提供的第一服务;
从作为多个网络对等方的第二网络对等方的服务用户的服务接入点访问由第一服务提供者所公开的第一服务接口,发现第一可发现绑定并使用该第一可发现绑定调用第一服务;
利用包含在第一服务提供者内的第一工作流整理器,根据第一服务提供者设定的规则来管理与服务用户对第一服务的调用有关的消息;
利用第一工作流整理器编排必要的步骤使服务用户通过第一工作流整理器处的公共接口调用来自第一服务提供者的第一服务并且获取调用第一服务的授权;以及
从作为所述多个网络对等方的第三网络对等方的第二服务提供者的第二服务适配层公开第二服务接口,该第二服务接口使网络对等方能够通过第二可发现服务绑定访问由第二服务提供者所提供的第二服务,第二服务提供对服务注册中心的访问,注册中心具有包含用以查找和访问第一服务的信息的目录项;
利用包含在第二服务提供者内的第二工作流整理器,根据第二服务提供者设定的规则来管理与服务用户对第二服务的调用有关的消息;
利用第二工作流整理器编排必要的步骤使服务用户调用来自第二服务提供者的第二服务;
其中所述服务接入点访问所述目录项并使用所述信息查找并调用第一服务。
13.权利要求12中的方法,其中服务注册中心是一个UDDI注册中心。
14.一种编排服务的方法,包括以下步骤:
从作为多个网络对等方的第一网络对等方的第一服务提供者的第一服务适配层公开第一服务接口,该第一服务接口使网络对等方能够通过第一可发现服务绑定,访问由第一服务提供者所提供的第一服务;
从作为所述多个网络对等方的第二网络对等方的服务用户的服务接入点访问由第一服务提供者所公开的第一服务接口,发现第一可发现绑定并使用该第一可发现绑定调用第一服务;
从作为所述多个网络对等方的第三网络对等方的第二服务提供者的第二服务适配层公开第二服务接口,该第二服务接口使网络对等方能够通过第二可发现服务绑定,访问由第二服务提供者所提供的第二服务,该第二服务提供对服务注册中心的访问,所述服务注册中心具有包含用于查找和访问第一服务的信息的目录项;
利用包含在第二服务提供者内的第一工作流整理器,根据第二服务提供者设定的规则来管理与服务用户对第二服务的调用有关的消息;
利用第一工作流整理器编排必要的步骤使服务用户调用来自第二服务提供者的第二服务;
利用包含在第一服务提供者内的第二工作流整理器,根据第一服务提供者设定的规则来管理与服务用户对第一服务的调用有关的消息;以及
利用第二工作流整理器编排必要的步骤使服务用户通过第二工作流整理器处的公共接口调用来自第一服务提供者的第一服务并且获得调用第一服务的授权;
使用信任管理证书确认第一服务只能由被设定授权的服务用户访问;及
执行一个控制程序,以便使用信任管理证书对第一服务提供限制性访问,
其中所述服务接入点使用信任管理证书验证服务用户有权访问第一服务。
15.权利要求14中的方法,其中信任管理证书是一个X.509证书。
16.权利要求14中的方法,其中信任管理证书是一个SSL证书。
CN200480021795.9A 2003-06-05 2004-06-07 用于对等服务编排的可互操作系统和方法 Expired - Fee Related CN1860761B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110260513.2A CN103001923B (zh) 2003-06-05 2004-06-07 用于控制对在计算机系统上的电子内容片段的访问的方法和系统

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

Application Number Title Priority Date Filing Date
CN201110260513.2A Division CN103001923B (zh) 2003-06-05 2004-06-07 用于控制对在计算机系统上的电子内容片段的访问的方法和系统

Publications (2)

Publication Number Publication Date
CN1860761A CN1860761A (zh) 2006-11-08
CN1860761B true CN1860761B (zh) 2015-09-23

Family

ID=34197784

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201110260513.2A Expired - Fee Related CN103001923B (zh) 2003-06-05 2004-06-07 用于控制对在计算机系统上的电子内容片段的访问的方法和系统
CN200480021795.9A Expired - Fee Related CN1860761B (zh) 2003-06-05 2004-06-07 用于对等服务编排的可互操作系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201110260513.2A Expired - Fee Related CN103001923B (zh) 2003-06-05 2004-06-07 用于控制对在计算机系统上的电子内容片段的访问的方法和系统

Country Status (13)

Country Link
US (22) US8234387B2 (zh)
EP (3) EP1629363B1 (zh)
JP (4) JP5242915B2 (zh)
KR (4) KR100965437B1 (zh)
CN (2) CN103001923B (zh)
AP (1) AP2005003476A0 (zh)
AU (2) AU2004264582B2 (zh)
BR (1) BRPI0410999A (zh)
CA (2) CA2528428C (zh)
EA (2) EA015549B1 (zh)
IL (2) IL172366A (zh)
SG (1) SG155065A1 (zh)
WO (1) WO2005017654A2 (zh)

Families Citing this family (744)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System 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
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
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
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
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. 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
EP1431864B2 (en) * 1995-02-13 2012-08-22 Intertrust Technologies Corporation 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
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
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
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
US9819561B2 (en) 2000-10-26 2017-11-14 Liveperson, Inc. System and methods for facilitating object assignments
WO2002054391A1 (fr) * 2000-12-28 2002-07-11 Hitachi Maxell, Ltd. Bande magnetique, son procede de nettoyage et appareil de nettoyage/formation de servopiste optique
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
US20060142086A1 (en) * 2003-02-26 2006-06-29 Blackburn Christopher W Progressive service in a service-oriented gaming network environment
JP2004255187A (ja) * 2003-02-26 2004-09-16 Wms Gaming Inc サービス指向ゲームネットワーク環境
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
US8308567B2 (en) * 2003-03-05 2012-11-13 Wms Gaming Inc. Discovery service in a service-oriented gaming network environment
US20040243848A1 (en) * 2003-03-06 2004-12-02 Blackburn Christopher W. Authentication service in a service-oriented gaming network environment
US20040243849A1 (en) * 2003-03-06 2004-12-02 Blackburn Christopher W. Authorization service in a service-oriented gaming network environment
US7927210B2 (en) * 2003-03-17 2011-04-19 Wms Gaming Inc. Accounting 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
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
US20040266523A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A 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
CN103001923B (zh) * 2003-06-05 2016-03-30 英特特拉斯特技术公司 用于控制对在计算机系统上的电子内容片段的访问的方法和系统
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 株式会社日立製作所 サービス処理方法及びシステム並びにその処理プログラム
US20050240354A1 (en) * 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract 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
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
US20050223109A1 (en) * 2003-08-27 2005-10-06 Ascential Software Corporation Data integration through a services oriented architecture
US20050262189A1 (en) * 2003-08-27 2005-11-24 Ascential Software Corporation Server-side application programming interface for a real time data integration service
WO2005022417A2 (en) * 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
US8041760B2 (en) 2003-08-27 2011-10-18 International Business Machines Corporation Service oriented architecture for a loading function in a data integration platform
US20050235274A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Real time data integration for inventory management
US8060553B2 (en) 2003-08-27 2011-11-15 International Business Machines Corporation Service oriented architecture for a transformation function in a data integration platform
US7814470B2 (en) * 2003-08-27 2010-10-12 International Business Machines Corporation Multiple service bindings for a real time data integration service
US20050234969A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Services oriented architecture for handling metadata 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
WO2005074187A1 (ja) * 2004-01-29 2005-08-11 Sony Corporation 情報処理装置及び方法
US20050177715A1 (en) * 2004-02-09 2005-08-11 Microsoft Corporation Method and system for managing identities in a peer-to-peer networking environment
US7603716B2 (en) * 2004-02-13 2009-10-13 Microsoft Corporation Distributed network security service
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
US7664828B2 (en) 2004-02-20 2010-02-16 Microsoft Corporation Invalid policy detection
US7243157B2 (en) * 2004-02-20 2007-07-10 Microsoft Corporation Dynamic protocol construction
US7496649B2 (en) * 2004-02-20 2009-02-24 Microsoft Corporation Policy application across multiple nodes
US8862570B1 (en) 2004-03-02 2014-10-14 Rockstar Consortium Us Lp Method and apparatus for open management of multi-media services
US7653189B1 (en) * 2004-03-02 2010-01-26 Nortel Networks Limited Telecommunications service negotiation
US7738980B2 (en) * 2004-03-04 2010-06-15 Yamaha Corporation Apparatus for editing configuration data of digital mixer
US20050251533A1 (en) * 2004-03-16 2005-11-10 Ascential Software Corporation Migrating data integration processes through use of externalized metadata representations
US7761406B2 (en) * 2004-03-16 2010-07-20 International Business Machines Corporation Regenerating data integration functions for transfer from a data integration platform
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 ヤマハ株式会社 ミキサエンジン制御装置及びプログラム
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
US20050273668A1 (en) * 2004-05-20 2005-12-08 Richard Manning Dynamic and distributed managed edge computing (MEC) framework
US20060010205A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaboration impersonation
US20060031234A1 (en) * 2004-05-21 2006-02-09 Brodi Beartusk Systems and methods for a collaborative group chat
US20050262075A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration shared state management
US20060010125A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaborative shared workspaces
CN101031882B (zh) * 2004-06-08 2010-09-08 达尔特设备互操作有限公司 用于通用设备互操作性平台的设备组招募和内容再现的体系结构、装置和方法
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
US7693994B2 (en) * 2004-09-17 2010-04-06 Ricoh Company, Ltd. Intermediary apparatus, distributed processing system, data-transfer method, program and recording medium
US7587496B2 (en) * 2004-09-17 2009-09-08 Ricoh Company, Ltd. Transfer device, distributed processing system, transfer device control method, program, and recording medium
US20060064386A1 (en) * 2004-09-20 2006-03-23 Aaron Marking Media on demand via peering
US11734393B2 (en) 2004-09-20 2023-08-22 Warner Bros. Entertainment Inc. Content distribution with renewable content protection
US8793762B2 (en) 2004-09-20 2014-07-29 Secure Content Storage Association Llc Simple nonautonomous peering network media
GB2419000A (en) * 2004-10-06 2006-04-12 Hewlett Packard Development Co Proving relationships between data
KR100628655B1 (ko) * 2004-10-20 2006-09-26 한국전자통신연구원 상이한 디지털 저작권 관리 도메인간의 콘텐츠 교환을 위한방법 및 시스템
JP4357534B2 (ja) * 2004-10-28 2009-11-04 富士通株式会社 移動無線通信端末及び通信制御方法
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
US10454890B2 (en) * 2005-01-31 2019-10-22 Unisys Corporation Negotiation of security protocols and protocol attributes in secure communications environment
US8140482B2 (en) 2007-09-19 2012-03-20 Moore James F Using RSS archives
US20080040151A1 (en) * 2005-02-01 2008-02-14 Moore James F Uses of managed health care data
US8347088B2 (en) * 2005-02-01 2013-01-01 Newsilike Media Group, Inc Security systems and methods for use with structured and unstructured data
US20060265489A1 (en) * 2005-02-01 2006-11-23 Moore James F Disaster management using an enhanced syndication platform
US20080126178A1 (en) * 2005-09-10 2008-05-29 Moore James F Surge-Based Online Advertising
US20080046471A1 (en) * 2005-02-01 2008-02-21 Moore James F Calendar Synchronization using Syndicated Data
US20070050446A1 (en) * 2005-02-01 2007-03-01 Moore James F Managing network-accessible resources
US20080005086A1 (en) * 2006-05-17 2008-01-03 Moore James F Certificate-based search
US20070106754A1 (en) * 2005-09-10 2007-05-10 Moore James F Security facility for maintaining health care data pools
US9202084B2 (en) 2006-02-01 2015-12-01 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US20080195483A1 (en) * 2005-02-01 2008-08-14 Moore James F Widget management systems and advertising systems related thereto
US8700738B2 (en) * 2005-02-01 2014-04-15 Newsilike Media Group, Inc. Dynamic feed generation
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
EP1696633B1 (en) * 2005-02-28 2008-01-09 Alcatel Lucent Bidirectional SOAP communication by means of a single HTTP session
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
US7864209B2 (en) * 2005-04-28 2011-01-04 Apple Inc. Audio processing in a multi-participant conference
US7899170B2 (en) * 2005-04-28 2011-03-01 Apple Inc. Multi-participant conference setup
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
WO2007011917A2 (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
EP1920393A2 (en) * 2005-07-22 2008-05-14 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US20070019641A1 (en) * 2005-07-22 2007-01-25 Rockwell Automation Technologies, Inc. Execution of industrial automation applications on communication infrastructure devices
JP4765485B2 (ja) * 2005-08-26 2011-09-07 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US8046837B2 (en) 2005-08-26 2011-10-25 Sony Corporation Information processing device, information recording medium, information processing method, and computer program
EP2506467A3 (en) * 2005-09-05 2015-03-25 Yamaha Corporation Digital mixer
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
US8825907B2 (en) * 2005-09-15 2014-09-02 Gendband US LLC 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
KR101285946B1 (ko) * 2005-10-18 2013-08-23 인터트러스트 테크놀로지즈 코포레이션 디지털 권리 관리를 위한 방법
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
US20070162377A1 (en) * 2005-12-23 2007-07-12 Credigy Technologies, Inc. System and method for an online exchange of private data
US20080021918A1 (en) * 2005-12-23 2008-01-24 Rao Viswanatha H Enterprise service management unifier system
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
EP2042989A1 (en) * 2006-02-03 2009-04-01 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
US8371932B2 (en) * 2006-02-07 2013-02-12 Wms Gaming Inc. Wager gaming network with wireless hotspots
WO2007092608A2 (en) * 2006-02-09 2007-08-16 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 西门子通信技术(北京)有限公司 一种实现业务互通的系统及方法
JP2009537042A (ja) * 2006-05-12 2009-10-22 サムスン エレクトロニクス カンパニー リミテッド 保安データを管理する装置およびその方法
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
US8019845B2 (en) * 2006-06-05 2011-09-13 International Business Machines Corporation Service delivery using profile based management
US7747736B2 (en) * 2006-06-05 2010-06-29 International Business Machines Corporation Rule and policy promotion within a policy hierarchy
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
US20080052162A1 (en) * 2006-07-27 2008-02-28 Wood Charles B Calendar-Based Advertising
US20080052343A1 (en) * 2006-07-27 2008-02-28 Wood Charles B Usage-Based Prioritization
US20080046369A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Password Management for RSS Interfaces
US20080046437A1 (en) * 2006-07-27 2008-02-21 Wood Charles B Manual Conflict Resolution for Background Synchronization
WO2008021079A2 (en) 2006-08-08 2008-02-21 Wms Gaming Inc. Configurable wagering game manager
EP2074547A2 (en) * 2006-08-10 2009-07-01 Intertrust Technologies Corporation Trust management systems and methods
US8095626B2 (en) * 2006-08-31 2012-01-10 Realnetworks, Inc. System and method for configuring a client electronic device
WO2008028145A2 (en) * 2006-08-31 2008-03-06 Real Networks, Inc. Api-accessible media distribution system
JP5079427B2 (ja) * 2006-08-31 2012-11-21 アクセンチュア グローバル サーヴィシズ ゲゼルシャフト ミット ベシュレンクテル ハフツング システム用のサービスプロビジョニング及びアクチベーションエンジン
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
WO2008064356A1 (en) * 2006-11-22 2008-05-29 Metis Enterprise Technologies Llc Real-time multicast peer-to-peer video streaming platform
US8578350B2 (en) * 2006-11-30 2013-11-05 Ncr Corporation System and method for interpreting a specification language file to implement a business system
AU2011203040B2 (en) * 2006-12-01 2012-07-05 Catch Media, Inc. Media management and tracking
KR100733742B1 (ko) * 2006-12-14 2007-06-29 주식회사 아이오셀 휴대용 정보처리 단말기 및 상기 단말기의 통신 시스템
US8625481B2 (en) * 2006-12-15 2014-01-07 Samsung Electronics Co., Ltd. Architecture for MANET over Bluetooth
KR101369399B1 (ko) * 2006-12-29 2014-03-05 삼성전자주식회사 Drm 에이전트-렌더링 어플리케이션 분리 환경에서수행되는 drm 관련 권한 통제 방법 및 시스템
WO2008087743A1 (en) * 2007-01-16 2008-07-24 Telefonaktiebolaget Lm Ericsson (Publ) Control device, reproducing device, permission server, method for controlling control device, method for controlling reproducing device, and method for controlling permission 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
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
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
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
US8850195B2 (en) * 2007-07-23 2014-09-30 Intertrust Technologies Corporation Tethered device systems and methods
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
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
US8290152B2 (en) * 2007-08-30 2012-10-16 Microsoft Corporation Management system for web service developer keys
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
US8838760B2 (en) * 2007-09-14 2014-09-16 Ricoh Co., Ltd. Workflow-enabled provider
US8238313B2 (en) * 2007-09-14 2012-08-07 Intel Corporation Techniques for wireless personal area network communications with efficient spatial reuse
US20090083762A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Dynamically mapping an action of a message
US20090083441A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Synchronization of web service endpoints in a multi-master synchronization environment
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
US20090241153A1 (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
US8453188B2 (en) * 2008-01-22 2013-05-28 Avaya Inc. Open cable application platform set-top box (STB) personal profiles and communications applications
US20090241159A1 (en) * 2008-03-18 2009-09-24 Avaya Technology Llc Open cable application platform set-top box (stb) personal profiles and communications applications
US7904597B2 (en) * 2008-01-23 2011-03-08 The Chinese University Of Hong Kong Systems and processes of identifying P2P applications based on behavioral signatures
EP2235912A4 (en) * 2008-01-24 2016-05-04 Ericsson Telefon Ab L M METHOD AND DEVICE FOR CONTROLLING GLOBAL WEB SERVICES
US8819838B2 (en) * 2008-01-25 2014-08-26 Google Technology Holdings LLC Piracy prevention in digital rights management systems
US7987163B2 (en) * 2008-02-12 2011-07-26 Bae Systems Information And Electronic Systems Integration Inc. Apparatus and method for dynamic web service discovery
US8788542B2 (en) 2008-02-12 2014-07-22 Oracle International Corporation Customization syntax 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
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
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
US20090315766A1 (en) 2008-06-19 2009-12-24 Microsoft Corporation Source switching for devices supporting dynamic direction information
US8700301B2 (en) 2008-06-19 2014-04-15 Microsoft Corporation Mobile computing devices, architecture and user interfaces based on dynamic direction information
US20090319166A1 (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
US20090315775A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US8949713B1 (en) * 2008-06-30 2015-02-03 Amazon Technologies, Inc. Version-specific request processing
US20090327094A1 (en) * 2008-06-30 2009-12-31 Microsoft Corporation Platform independent ecosystem for creation, consumption and trade of user-generated digital content
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
MX2011000025A (es) 2008-07-28 2011-05-30 Sony Corp Dispositivo de cliente y metodologia asociada para acceder a servicios en red.
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
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
CA2677504A1 (en) * 2008-09-03 2010-03-03 Dundas Data Visualization, Inc. Systems and methods for providing security for software applications
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
US8850553B2 (en) * 2008-09-12 2014-09-30 Microsoft Corporation Service binding
US8296317B2 (en) * 2008-09-15 2012-10-23 Oracle International Corporation Searchable object network
US8271609B2 (en) * 2008-09-15 2012-09-18 Oracle International Corporation Dynamic service invocation and service adaptation in BPEL SOA process
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 日本電気株式会社 秘匿通信ネットワークにおける共有乱数管理方法および管理システム
US8145593B2 (en) * 2008-12-11 2012-03-27 Microsoft Corporation Framework for web services exposing line of business applications
US20100153565A1 (en) * 2008-12-11 2010-06-17 Microsoft Corporation Connection management in line-of-business
US8341141B2 (en) * 2008-12-16 2012-12-25 Krislov Clinton A Method and system for automated document registration
US8914351B2 (en) 2008-12-16 2014-12-16 Clinton A. Krislov Method and system for secure automated document registration from social media networks
US8589372B2 (en) 2008-12-16 2013-11-19 Clinton A. Krislov Method and system for automated document registration with cloud computing
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 腾讯科技(深圳)有限公司 一种社会化网络中特征关系圈的提取方法及装置
WO2010102834A1 (en) * 2009-03-12 2010-09-16 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
US8966005B2 (en) * 2009-05-01 2015-02-24 Telefonaktiebolatet L M Ericsson (Publ) Information processing system and method providing a composed service
US9118462B2 (en) 2009-05-20 2015-08-25 Nokia Corporation Content sharing systems and methods
KR20120030437A (ko) 2009-05-21 2012-03-28 인터트러스트 테크놀로지즈 코포레이션 컨텐츠 전달 시스템 및 방법
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
CN101599995B (zh) * 2009-07-13 2012-01-11 中国传媒大学 面向高并发检索系统的目录分发方法及网络架构
US10045083B2 (en) 2009-07-13 2018-08-07 The Directv Group, Inc. Satellite seeding of a peer-to-peer content distribution network
EP2456118A4 (en) * 2009-07-17 2013-05-01 Alcatel Lucent METHOD AND DEVICE FOR DIGITAL RIGHT MANAGEMENT IN SMALL AND MEDIUM-SIZED ENTERPRISES AND METHOD FOR PROVIDING A DRM SERVICE
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
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
US9026412B2 (en) * 2009-12-17 2015-05-05 International Business Machines Corporation Managing and maintaining scope in a service oriented architecture industry model repository
US20110153391A1 (en) * 2009-12-21 2011-06-23 Michael Tenbrock Peer-to-peer privacy panel for audience measurement
US20130232198A1 (en) * 2009-12-21 2013-09-05 Arbitron Inc. System and Method for Peer-to-Peer Distribution of Media Exposure Data
US10305910B2 (en) 2010-01-15 2019-05-28 Apple Inc. Accessing specialized fileserver
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
US8612633B2 (en) * 2010-03-31 2013-12-17 Microsoft Corporation Virtual machine fast emulation assist
US8965801B2 (en) * 2010-03-31 2015-02-24 International Business Machines Corporation Provision of support services as a service
EP2556449A1 (en) 2010-04-07 2013-02-13 Liveperson Inc. System and method for dynamically enabling customized web content and applications
US8433755B2 (en) 2010-04-07 2013-04-30 Apple Inc. Dynamic designation of a central distributor in a multi-participant conference
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
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
CA2754520A1 (en) 2010-10-07 2012-04-07 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
US10694402B2 (en) 2010-11-05 2020-06-23 Mark Cummings Security orchestration and network immune system deployment framework
US10531516B2 (en) 2010-11-05 2020-01-07 Mark Cummings Self organizing system to implement emerging topologies
EP2636186B1 (en) 2010-11-05 2019-08-14 Mark Cummings Orchestrating wireless network operations
US10687250B2 (en) 2010-11-05 2020-06-16 Mark Cummings Mobile base station network
US10285094B2 (en) 2010-11-05 2019-05-07 Mark Cummings Mobile base station network
WO2012068465A1 (en) * 2010-11-19 2012-05-24 Interdigital Patent Holdings, Inc. Machine-to-machine (m2m) interface procedures for announce and de-announce of resources
US8381218B2 (en) 2010-11-30 2013-02-19 Microsoft Corporation Managing groups of computing entities
DE202011110377U1 (de) * 2010-12-03 2013-09-20 Titus Inc. System eines hierarchischen Metadaten Managements und Anwendung
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
CN103597488B (zh) 2011-04-11 2016-08-24 英特托拉斯技术公司 信息安全系统和方法
KR20120122616A (ko) * 2011-04-29 2012-11-07 삼성전자주식회사 Drm 서비스 제공 방법 및 장치
US20120284804A1 (en) 2011-05-02 2012-11-08 Authentec, Inc. System and method for protecting digital contents with digital rights management (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
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
CA2840263A1 (en) * 2011-07-04 2013-01-10 Blackberry Limited System and method for sharing mobile device content
US20130013454A1 (en) * 2011-07-08 2013-01-10 Mark Sears E-commerce content management system for destination routing
US9131330B2 (en) * 2011-07-15 2015-09-08 Telefonaktiebolaget L M Ericsson (Publ) M2M services enablement architecture for cellular 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
US20130024880A1 (en) * 2011-07-20 2013-01-24 Kate Moloney-Egnatios 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 삼성에스디에스 주식회사 미디어 키 관리 및 상기 미디어 키를 이용한 피어-투-피어 메시지 송수신 시스템 및 방법
CN103959298B (zh) * 2011-09-29 2017-04-05 Lg电子株式会社 基于权限验证下载内容的方法、设备和系统
US8954942B2 (en) 2011-09-30 2015-02-10 Oracle International Corporation Optimizations using a BPEL compiler
EP2764689A4 (en) * 2011-10-03 2015-04-29 Thomson Licensing METHOD AND APPARATUS FOR PROCESSING CONTENT OFFERS IN DIGITAL LOCKER SYSTEM
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
CA2864476A1 (en) 2012-02-17 2013-08-22 Intertrust Technologies Corporation Systems and methods for vehicle policy enforcement
WO2013123548A2 (en) 2012-02-20 2013-08-29 Lock Box 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
US9727708B2 (en) 2012-02-21 2017-08-08 Pulselocker, Inc. Method and apparatus for limiting access to data by process or computer function with stateless encryption
US9621458B2 (en) * 2012-02-21 2017-04-11 Qualcomm Incorporated Internet routing over a service-oriented architecture bus
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 株式会社東芝 セキュリティアダプタプログラム及び装置
EP2859519A4 (en) 2012-06-11 2016-01-27 Intertrust Tech Corp SYSTEMS AND METHODS OF COLLECTING AND ANALYZING DATA
WO2014004965A1 (en) 2012-06-29 2014-01-03 Interdigital Patent Holdings, Inc. Service-based discovery in networks
US20140007197A1 (en) * 2012-06-29 2014-01-02 Michael John Wray Delegation within a computing environment
US9741046B2 (en) 2012-07-06 2017-08-22 Oracle International Corporation Service design and order fulfillment system with fulfillment solution blueprint
WO2014015305A1 (en) 2012-07-20 2014-01-23 Intertrust Technologies Corporation Information targeting systems and methods
DE102012015527B4 (de) * 2012-08-04 2017-02-09 Audi Ag Verfahren zum Nutzen eines zweiten Infotainmentsystems mittels eines ersten Infotainmentsystems und Fahrzeug
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
US9378073B2 (en) 2012-08-14 2016-06-28 International Business Machines Corporation Remote procedure call for a distributed system
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 浪潮(北京)电子信息产业有限公司 一种消息处理方法和装置
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
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
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
US9734249B2 (en) 2012-11-07 2017-08-15 Intertrust Technologies Corporation Personalized data management systems and methods
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 三菱電機株式会社 制御システム及びプログラム送信装置及び認証サーバ及びプログラム保護方法及びプログラム送信方法及びプログラム送信装置のプログラム
EP2954666A1 (en) 2013-02-08 2015-12-16 Interdigital Patent Holdings, Inc. METHOD AND APPARATUS FOR INCORPORATING AN INTERNET OF THINGS (IoT) SERVICE INTERFACE PROTOCOL LAYER IN A NODE
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
US9807069B2 (en) 2013-03-12 2017-10-31 Intertrust Technologies Corporation Secure transaction systems and methods
US9584544B2 (en) * 2013-03-12 2017-02-28 Red Hat Israel, Ltd. Secured logical component for security in a virtual environment
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
US9130900B2 (en) * 2013-03-15 2015-09-08 Bao Tran Assistive agent
WO2014141595A1 (ja) * 2013-03-15 2014-09-18 パナソニック株式会社 コンテンツ配信方法、コンテンツ配信システム、ソース機器及びシンク機器
US9215075B1 (en) 2013-03-15 2015-12-15 Poltorak Technologies Llc System and method for secure relayed communications from an implantable medical device
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
US9299049B2 (en) * 2013-03-15 2016-03-29 Sap Se Contract-based process integration
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
CN108156180B (zh) * 2013-06-08 2021-04-09 科大国盾量子技术股份有限公司 一种基于Android智能移动终端的通信密钥分配方法
US10191733B2 (en) 2013-06-25 2019-01-29 Sap Se Software change process orchestration in a runtime environment
US9961052B2 (en) * 2013-06-28 2018-05-01 Extreme Networks, Inc. Virtualized host ID key sharing
US9558460B2 (en) * 2013-06-28 2017-01-31 Lexmark International Technology Sarl Methods of analyzing software systems having service components
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
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
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
CN105580339B (zh) * 2013-07-25 2019-04-09 康维达无线有限责任公司 用于端到端m2m服务层会话的方法与设备
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
WO2015042379A1 (en) * 2013-09-20 2015-03-26 Convida Wireless, Llc Enhanced m2m content management based on interest
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
WO2015066556A1 (en) * 2013-10-31 2015-05-07 Verimatrix Inc. System and method for synchronized key derivation across multiple conditional access servers
US9769214B2 (en) 2013-11-05 2017-09-19 Avaya Inc. Providing reliable session initiation protocol (SIP) signaling for web real-time communications (WEBRTC) interactive flows, and related methods, systems, and computer-readable media
CN103595714A (zh) * 2013-11-08 2014-02-19 福建省视通光电网络有限公司 一种通过web服务通道实现数据传输的方法
KR101510336B1 (ko) * 2013-11-14 2015-04-07 현대자동차 주식회사 차량용 운전자 지원 시스템의 검사 장치
CN103618795B (zh) * 2013-11-29 2018-06-05 百度在线网络技术(北京)有限公司 跨设备的文件处理方法、客户端和服务器
US9697061B1 (en) 2013-12-18 2017-07-04 Amazon Technologies, Inc. Parameter delegation for encapsulated services
US9922322B2 (en) 2013-12-19 2018-03-20 Visa International Service Association Cloud-based transactions with magnetic secure transmission
US9972005B2 (en) 2013-12-19 2018-05-15 Visa International Service Association Cloud-based transactions methods and systems
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
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
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
AU2015249674B2 (en) * 2014-04-23 2019-08-15 Sgph, Llc Smart routing synchronization system and methods for socializing a synthetic rebroadcast and group stream
CN106465112A (zh) 2014-05-21 2017-02-22 维萨国际服务协会 离线认证
US9621940B2 (en) 2014-05-29 2017-04-11 Time Warner Cable Enterprises Llc Apparatus and methods for recording, accessing, and delivering packetized content
US10162855B2 (en) 2014-06-09 2018-12-25 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
US10374910B2 (en) * 2014-06-13 2019-08-06 Convida Wireless, Llc Automated service profiling and orchestration
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
WO2016118216A2 (en) 2014-11-06 2016-07-28 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
US10205710B2 (en) 2015-01-08 2019-02-12 Intertrust Technologies Corporation Cryptographic systems and methods
US9401933B1 (en) 2015-01-20 2016-07-26 Cisco Technology, Inc. Classification of security policies across multiple security products
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
US9521167B2 (en) 2015-01-20 2016-12-13 Cisco Technology, Inc. Generalized security policy user interface
US9571524B2 (en) 2015-01-20 2017-02-14 Cisco Technology, Inc. Creation of security policy templates and security policies based on the templates
US10069928B1 (en) * 2015-01-21 2018-09-04 Amazon Technologies, Inc. Translating requests/responses between communication channels having different protocols
JP6822970B2 (ja) 2015-02-26 2021-01-27 エスアイオーツー・メディカル・プロダクツ・インコーポレイテッド 耐擦り傷性かつ帯電防止性のコーティングを有するシクロオレフィンポリマー容器
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
US20160267481A1 (en) * 2015-03-13 2016-09-15 Svetoslav Lazarov Gramenov System and method for distributed money supply
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
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
WO2016172484A1 (en) 2015-04-23 2016-10-27 Convida Wirless, Llc Device and method for adding an m2m service
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
US10142908B2 (en) 2015-06-02 2018-11-27 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
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
US9860346B2 (en) 2015-10-14 2018-01-02 Adp, Llc Dynamic application programming interface builder
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
US10317243B2 (en) 2015-10-15 2019-06-11 Intertrust Technologies Corporation Sensor information management systems and methods
JP6881310B2 (ja) * 2015-10-20 2021-06-02 ソニーグループ株式会社 情報処理装置、および情報処理方法、並びにプログラム
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
US10349269B1 (en) * 2016-06-06 2019-07-09 Omnicharge, Inc. Apparatus, system and method for device activation
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
RU2016123959A (ru) * 2016-06-16 2017-12-21 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запроса на транзакцию в распределенных системах обработки данных
WO2018004596A1 (en) * 2016-06-30 2018-01-04 Intel Corporation Technologies for serializable binary data distribution
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
SG11201808998RA (en) 2016-07-11 2018-11-29 Visa Int Service Ass 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
EP3520243A2 (en) 2016-11-03 2019-08-07 Convida Wireless, LLC Frame structure in nr
US10609160B2 (en) * 2016-12-06 2020-03-31 Nicira, Inc. Performing context-rich attribute-based services on a host
CN107025559B (zh) * 2017-01-26 2020-09-18 创新先进技术有限公司 一种业务处理方法及装置
CN110301136B (zh) 2017-02-17 2023-03-24 交互数字麦迪逊专利控股公司 在流传输视频中进行选择性感兴趣对象缩放的系统和方法
US10560328B2 (en) 2017-04-20 2020-02-11 Cisco Technology, Inc. Static network policy analysis for networks
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
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
US10505816B2 (en) 2017-05-31 2019-12-10 Cisco Technology, Inc. Semantic analysis to detect shadowing of rules in a model of network intents
US10581694B2 (en) 2017-05-31 2020-03-03 Cisco Technology, Inc. Generation of counter examples for network intent formal equivalence failures
US20180351788A1 (en) 2017-05-31 2018-12-06 Cisco Technology, Inc. Fault localization in large-scale network policy deployment
US10693738B2 (en) 2017-05-31 2020-06-23 Cisco Technology, Inc. Generating device-level logical models for a network
US10554483B2 (en) 2017-05-31 2020-02-04 Cisco Technology, Inc. Network policy analysis for networks
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
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
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
US10686669B2 (en) 2017-06-16 2020-06-16 Cisco Technology, Inc. Collecting network models and node information from a network
US10574513B2 (en) 2017-06-16 2020-02-25 Cisco Technology, Inc. Handling controller and node failure scenarios during data collection
US11469986B2 (en) 2017-06-16 2022-10-11 Cisco Technology, Inc. Controlled micro fault injection on a distributed appliance
US11150973B2 (en) 2017-06-16 2021-10-19 Cisco Technology, Inc. Self diagnosing distributed appliance
US10498608B2 (en) 2017-06-16 2019-12-03 Cisco Technology, Inc. Topology explorer
US10904101B2 (en) 2017-06-16 2021-01-26 Cisco Technology, Inc. Shim layer for extracting and prioritizing underlying rules for modeling network intents
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
US11645131B2 (en) 2017-06-16 2023-05-09 Cisco Technology, Inc. Distributed fault code aggregation across application centric dimensions
US10547715B2 (en) 2017-06-16 2020-01-28 Cisco Technology, Inc. Event generation in response to network intent formal equivalence failures
US10644946B2 (en) 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
US10652102B2 (en) 2017-06-19 2020-05-12 Cisco Technology, Inc. Network node memory utilization analysis
US10528444B2 (en) 2017-06-19 2020-01-07 Cisco Technology, Inc. Event generation in response to validation between logical level and hardware level
US10700933B2 (en) 2017-06-19 2020-06-30 Cisco Technology, Inc. Validating tunnel endpoint addresses in a network fabric
US10567229B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validating endpoint configurations between nodes
US10567228B2 (en) 2017-06-19 2020-02-18 Cisco Technology, Inc. Validation of cross logical groups in a network
US10623259B2 (en) 2017-06-19 2020-04-14 Cisco Technology, Inc. Validation of layer 1 interface in a network
US11343150B2 (en) 2017-06-19 2022-05-24 Cisco Technology, Inc. Validation of learned routes in a network
US10560355B2 (en) 2017-06-19 2020-02-11 Cisco Technology, Inc. Static endpoint validation
US10411996B2 (en) 2017-06-19 2019-09-10 Cisco Technology, Inc. Validation of routing information in a network fabric
US10812336B2 (en) 2017-06-19 2020-10-20 Cisco Technology, Inc. Validation of bridge domain-L3out association for communication outside a network
US10333787B2 (en) 2017-06-19 2019-06-25 Cisco Technology, Inc. Validation of L3OUT configuration for communications outside a network
US10805160B2 (en) 2017-06-19 2020-10-13 Cisco Technology, Inc. Endpoint bridge domain subnet validation
US10673702B2 (en) 2017-06-19 2020-06-02 Cisco Technology, Inc. Validation of layer 3 using virtual routing forwarding containers 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
US10554493B2 (en) 2017-06-19 2020-02-04 Cisco Technology, Inc. Identifying mismatches between a logical model and node implementation
US10536337B2 (en) 2017-06-19 2020-01-14 Cisco Technology, Inc. Validation of layer 2 interface and VLAN in a networked environment
US10218572B2 (en) 2017-06-19 2019-02-26 Cisco Technology, Inc. Multiprotocol border gateway protocol routing validation
US10505817B2 (en) 2017-06-19 2019-12-10 Cisco Technology, Inc. Automatically determining an optimal amount of time for analyzing a distributed network environment
US10437641B2 (en) 2017-06-19 2019-10-08 Cisco Technology, Inc. On-demand processing pipeline interleaved with temporal processing pipeline
US10348564B2 (en) 2017-06-19 2019-07-09 Cisco Technology, Inc. Validation of routing information base-forwarding information base equivalence in a network
US11283680B2 (en) 2017-06-19 2022-03-22 Cisco Technology, Inc. Identifying components for removal in a network configuration
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
US10057243B1 (en) 2017-11-30 2018-08-21 Mocana Corporation System and method for securing data transport between a non-IP endpoint device that is connected to a gateway device and a connected service
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
US11165874B2 (en) 2018-03-28 2021-11-02 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for multi-provider virtual network services
EP3777095A1 (en) * 2018-03-28 2021-02-17 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
SG11202011249UA (en) * 2018-05-15 2020-12-30 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
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
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
US10659298B1 (en) 2018-06-27 2020-05-19 Cisco Technology, Inc. Epoch comparison for network events
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 平安科技(深圳)有限公司 基于接口异步调用的数据传输方法、服务器及存储介质
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
US11080247B2 (en) * 2018-09-19 2021-08-03 Salesforce.Com, Inc. Field-based peer permissions in a blockchain network
US11100091B2 (en) 2018-09-19 2021-08-24 Salesforce.Com, Inc. Lightweight node in a multi-tenant blockchain network
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
US11871451B2 (en) 2018-09-27 2024-01-09 Interdigital Patent Holdings, Inc. 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 深圳市华师兄弟文化传播有限公司 自品牌分享系统
US11595217B2 (en) 2018-12-06 2023-02-28 Digicert, Inc. 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 苏宁云计算有限公司 数据服务提供方法、装置、计算机设备和存储介质
CN114503105A (zh) * 2019-09-25 2022-05-13 联邦科学和工业研究组织 用于浏览器应用的密码服务
GB2588107B (en) 2019-10-07 2022-11-02 British Telecomm Secure publish-subscribe communication methods and apparatus
WO2021096891A1 (en) * 2019-11-11 2021-05-20 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 中国建设银行股份有限公司 一种银行保管箱业务提供方法及装置
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 深圳壹账通智能科技有限公司 分布式事务处理方法、装置、计算机设备及可读存储介质
US20220012102A1 (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
CN111815420B (zh) * 2020-08-28 2021-07-06 支付宝(杭州)信息技术有限公司 一种基于可信资产数据的匹配方法、装置及设备
US11734356B2 (en) * 2020-09-11 2023-08-22 Jpmorgan Chase Bank, N.A. System and method for implementing an open policy agent bridge
WO2022072723A1 (en) * 2020-09-30 2022-04-07 Bytedance Inc. Picture partitioning in video coding
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
US11907229B2 (en) * 2022-03-31 2024-02-20 Gm Cruise Holdings Llc System and method for platform-independent access bindings
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拓扑结构的离子杂化多孔材料及其制备方法和应用
CN114760290A (zh) * 2022-05-07 2022-07-15 北京字跳网络技术有限公司 一种应用开发方法、装置、电子设备及存储介质
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 英業達股份有限公司 權限管理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996544B2 (en) * 2002-02-27 2006-02-07 Imagineer Software, Inc. Multiple party content distribution system and method with rights management features

Family Cites Families (272)

* 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
US4827508A (en) * 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
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
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".
US5629980A (en) * 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
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
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
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
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation 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
US7069451B1 (en) * 1995-02-13 2006-06-27 Intertrust Technologies Corp. 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
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
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
EP1431864B2 (en) 1995-02-13 2012-08-22 Intertrust Technologies Corporation 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
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
DE69737593T2 (de) 1996-05-15 2007-12-20 Intertrust Technologies Corp., Sunnyvale Verfahren und Vorrichtung zum Zugriff auf DVD-Inhalte
EP0974129B1 (en) 1996-09-04 2006-08-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing, and rights management
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
EP0988591A1 (en) 1997-06-09 2000-03-29 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
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
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
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
CA2425741C (en) 1998-03-16 2006-05-23 Intertrust Technologies Corporation Methods and apparatus for continuous control and protection of media content
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
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
WO2000005716A1 (fr) * 1998-07-22 2000-02-03 Matsushita Electric Industrial Co., Ltd. Dispositif d'enregistrement de donnees numeriques et procede de protection des droits d'auteur et de reproduction facile de donnees numeriques chiffrees et support d'enregistrement lisible par un ordinateur, conçu pour l'enregistrement de programme
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
KR100746018B1 (ko) * 1999-03-10 2007-08-06 디지맥 코포레이션 디지털 저작권 관리를 위한 신호 프로세싱 방법들, 디바이스들, 및 응용들
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
US20020194081A1 (en) * 1999-04-21 2002-12-19 Perkowski Thomas J. Internet-based consumer service brand marketing communication system which enables service-providers, retailers, and their respective agents and consumers to carry out service-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
WO2001006374A2 (en) 1999-07-16 2001-01-25 Intertrust Technologies Corp. System and method for securing an untrusted storage
AU6614600A (en) 1999-07-29 2001-02-19 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
EP1526435A3 (en) 1999-07-30 2005-07-27 Intertrust Technologies Corp. Methods and systems for transaction record delivery using thresholds and multi-stage protocol
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 日本電気株式会社 プラグアンドプレイ機能を有するフレームワークおよびその再構成方法
WO2001080472A2 (en) 2000-04-18 2001-10-25 Portalplayer, Inc. Downloaded media protocol integration system and method
WO2001086462A1 (en) 2000-05-08 2001-11-15 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
US6990513B2 (en) * 2000-06-22 2006-01-24 Microsoft Corporation Distributed computing services platform
AU2001271704A1 (en) * 2000-06-29 2002-01-14 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
GB0024918D0 (en) 2000-10-11 2000-11-22 Sealedmedia Ltd Method of providing java tamperproofing
GB0024919D0 (en) * 2000-10-11 2000-11-22 Sealedmedia Ltd Method of further securing an operating system
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
US8606684B2 (en) * 2000-11-10 2013-12-10 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
AU1547402A (en) * 2001-02-09 2002-08-15 Sony Corporation 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
US20030159033A1 (en) * 2001-03-29 2003-08-21 Ryuji Ishiguro Information processing apparatus
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
DE60226714D1 (de) * 2001-04-12 2008-07-03 Research In Motion Ltd System und Verfahren zum dynamischen Schieben von Informationen in drahtlose Datenkommunikationsgeräte
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
EP1323018A4 (en) 2001-06-07 2004-07-07 Contentguard Holdings Inc PROTECTED CONTENT DELIVERY 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
KR20040015714A (ko) * 2001-07-17 2004-02-19 마쯔시다덴기산교 가부시키가이샤 컨텐츠 이용장치와 네트워크 시스템, 및 라이센스 정보취득방법
KR20040029389A (ko) * 2001-08-01 2004-04-06 마쯔시다덴기산교 가부시키가이샤 컨텐츠 이용 권리를 관리하기 위한 장치 및 방법
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
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
WO2003034313A2 (en) * 2001-10-18 2003-04-24 Macrovision Corporation Systems and methods for providing digital rights management compatibility
US7496751B2 (en) * 2001-10-29 2009-02-24 Sun Microsystems, Inc. Privacy and identification in a data communications network
EP1442594A2 (en) * 2001-10-29 2004-08-04 Matsushita Electric Industrial Co., Ltd. Apparatus of a baseline dvb-cpcm
US7558759B2 (en) * 2001-11-20 2009-07-07 Contentguard Holdings, Inc. Systems and methods for creating, manipulating and processing rights and contract expressions using tokenized templates
US7254614B2 (en) * 2001-11-20 2007-08-07 Nokia Corporation Web services push gateway
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
US7484103B2 (en) * 2002-01-12 2009-01-27 Je-Hak Woo 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
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
US7631318B2 (en) * 2002-06-28 2009-12-08 Microsoft Corporation Secure server plug-in architecture for digital rights management systems
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
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
CN1685706A (zh) * 2002-09-23 2005-10-19 皇家飞利浦电子股份有限公司 基于证书授权的域
CN103354543B (zh) * 2002-09-30 2016-10-19 皇家飞利浦电子股份有限公司 确定目标节点对于源节点的邻近性的方法和相应的节点
CN100403209C (zh) 2002-10-22 2008-07-16 皇家飞利浦电子股份有限公司 用于授权内容操作的方法与装置
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
US20040143546A1 (en) * 2002-11-01 2004-07-22 Wood Jeff A. Easy user activation of electronic commerce services
US20040088541A1 (en) * 2002-11-01 2004-05-06 Thomas Messerges Digital-rights management system
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
WO2004055650A1 (en) 2002-12-17 2004-07-01 Koninklijke Philips Electronics N.V. System to allow content sharing
WO2004059451A1 (en) 2002-12-30 2004-07-15 Koninklijke Philips Electronics N.V. Divided rights in authorized domain
US8364951B2 (en) * 2002-12-30 2013-01-29 General Instrument Corporation System for digital rights management using distributed provisioning and authentication
US20040128546A1 (en) * 2002-12-31 2004-07-01 International Business Machines Corporation Method and system for attribute exchange in a heterogeneous federated environment
US8468227B2 (en) 2002-12-31 2013-06-18 Motorola Solutions, Inc. System and method for rendering content on multiple devices
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
JP4759513B2 (ja) * 2003-06-02 2011-08-31 リキッド・マシンズ・インコーポレーテッド 動的、分散的および協働的な環境におけるデータオブジェクトの管理
CN103001923B (zh) 2003-06-05 2016-03-30 英特特拉斯特技术公司 用于控制对在计算机系统上的电子内容片段的访问的方法和系统
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
US20050119977A1 (en) 2003-09-05 2005-06-02 Limelight Networks, Llc 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
WO2005052802A1 (ja) * 2003-11-25 2005-06-09 Matsushita Electric Industrial Co.,Ltd. 認証システム
US20050234735A1 (en) 2003-11-26 2005-10-20 Williams Jim C Digital rights management using proximity testing
US7516331B2 (en) * 2003-11-26 2009-04-07 International Business Machines Corporation Tamper-resistant trusted java virtual machine and method of using the same
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
KR20070024496A (ko) 2004-02-23 2007-03-02 힐크레스트 래보래토리스, 인크. 보안 미디어 컴퓨팅 환경을 위한 비디오 출력 생성 방법,컴퓨터 비디오 시스템, 케이블 데이터 처리 시스템, 및케이블 데이터 입력 카드
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
WO2006018826A1 (en) 2004-06-28 2006-02-23 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
US20060053285A1 (en) * 2004-07-29 2006-03-09 Kimmel Gerald D Object access level
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 삼성전자주식회사 라운드 트립 시간을 측정하는 방법 및 이를 이용한 인접성검사 방법
WO2006095335A2 (en) 2005-03-07 2006-09-14 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 認証機能を備える電子文書
WO2007030920A2 (en) 2005-09-12 2007-03-22 Sand Box Technologies Inc. System and method for controlling 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996544B2 (en) * 2002-02-27 2006-02-07 Imagineer Software, Inc. Multiple party content distribution system and method with rights management features

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1860761B (zh) 用于对等服务编排的可互操作系统和方法
MXPA05013130A (es) Sistemas y metodos interoperables para orquestacion de servicio de igual a igual

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150923

Termination date: 20200607