具体实施方式
本发明具体为一种电子内容发布与交易系统。根据本发明的系统可将可靠的电子内容下载到具有跟踪能力的客户系统上。此外,本发明提供了一种确保在服务器与客户端之间进行经验证的、安全的内容分发的系统。
本发明具体为一种电视观看信息传送与收集系统,它改善了个人观众选择和自动录制电视节目的能力,同时为业务提供商提供了改进和指导观看经验的机会。本发明描述了一种完全分布式系统,其中在保证有关观看习惯、首选项或购买信息的可靠集中与分发的同时,在本地客户设备内针对个人观众提供了个人观众信息计算。
电视观看信息数据库
图1给出了本发明的示意概图。本发明实质上是一种在中心站点100处的计算机系统与极大量客户计算系统101中维护电视观看信息的一种分布式数据库的方法和设备。提取该数据库重要拷贝的适合子集的过程被称作“切片”过程102;向客户传送产生的“切片”的过程叫做“传送”过程103;向中央站点传送相对于或代表观众收集的信息的过程称作“收集”过程104;而处理所收集信息以生成新的电视观看对象或报告的过程称作“分析”过程107;在所有过程中,将一个数据库中的对象重新在另一个数据库中创建的操作称为“复制”过程105。传送或收集的数据项称为“对象”106;而中央数据库及在客户设备中的中央数据库的每个复制子集称为“基于对象”的数据库。为强调其预期用途,所述数据库中的对象通常称为“电视观看对象”、“观看对象”、或简单地称为“对象”。然而,本领域的技术人员将容易地意识到对象可以是任何类型的数据。
观看对象数据库提供了一种所包含对象的一致的抽象软件访问模型,它独立于且并行于本文描述的复制活动。使用这种界面,应用程序就可以创建、删除、读取、写入以及另外控制数据库中对象,而无需考虑在下面的活动,并且可以保证数据库中对象的一致和可靠观看,并能一直保持它们之间的这些关系。
电视观看对象的基本准则
参考图2,电视观看对象被构造为一个“属性”的集合200。每个属性具有一个类型201(例如整型、字符串或布尔型)以及一个值202。所有属性类型均取自一个数据库支持的固定的基本类型池。
一个对象的属性分为两类:“基本”属性,其由观看对象的创建者或维护者提供;以及“导出”属性,其由数据库中的机制自动创建和维护。基本属性描述对象本身的特性;导出属性描述对象之间的关系。基本属性可在数据库之间进行复制,而导出属性却不能。
参照图3,图中是本发明定义的基本对象类型的一个小集合;每个对象类型表示为一个相关属性的特定集合300,本文称为“模式(schema)”。该模式定义了用于各个属性类型的模板301,它包括属性类型302和属性名303。通过分配对象资源以及对模式定义的属性赋值,就创建了实际的电视观看对象。例如,一个“节目”模式可包括例如节目的制作人、导演或演员、屏上图标、节目内容的多行描述、节目的编辑等级等属性。物理的节目对象是通过为其分配存储器并将相关数据填入到属性中而创建。
有一个为所有数据库预定义的特殊对象类型,称作模式类型。数据库支持的每个模式由一个模式对象表示。这使一个应用程序对数据库执行“自测(introspection)”,即动态地发现支持什么对象类型及其模式。这极大地简化了应用软件,并避免了当模式改变、增加或删除时而改变应用软件的需要。使用本发明的方法,模式对象与所有其它观看对象的处理是一样的。
再次参照图2,数据库中的每个对象被分配了一个“对象ID”203,它在数据库中必须是唯一的。只要保持每个对象ID的唯一性,所述对象ID就可以采用多种形式。优选实施例的对象ID使用一个32比特整数,这是由于它可以实现处理速度与可用唯一对象数量之间的有效折衷。每个对象还包括一个“引用计数”204,它是一个整数,给出了数据库中引用当前对象的其它对象数量。引用计数为0的对象是不会总在所述数据库中(参照下述描述)。
观看对象的一个具体类型为“目录”对象。目录对象用于维护一份对象ID清单和一个该对象相关的简名。目录对象可包括其它目录对象作为该清单的一部分,并有一个称作“根”目录的单一特别对象。从根目录开始直到找到感兴趣的对象所通过的目录对象序列称作到该对象的“路径”;因此,所述路径可以指示数据库中所有目录对象中所创建的等级名字空间中的某一特定位置。一个对象可被多条路径引用,这表示一个对象可以具有多个名称。每个目录引用它一次,观看对象上的引用计数就加1。
维护数据库一致性及准确性的方法
本发明的一个优选实施例的特性之一就在于:保证了每个数据库副本总可以保持内部一致性,且不用参照其它数据库或连接到中央站点就能自动保持这种一致性。传送或收集操作能否及时或以确定的周期发生是无法保证的。例如,客户系统可能会关闭几个月;当最后向该系统传输内容时,即使无法传送所需的所有对象以使中央数据库与客户数据库完全同步,但对象的复制总可以产生服务器数据库的一个一致的子集。
甚至更糟,当数据库在使用或更新时会无法保证稳定的操作环境。例如,设备的供电可能中断。本发明将所有数据库更新操作均视为“事务处理”,这就意味着要么完成整个事务处理,要么一个也不完成。选择的具体技术称作“两阶段提交”,其中在执行实际的更新前,要检查和注册所有的事务单元。本领域的技术人员将会意识到:一种标准的日志处理技术(其中事务被存入一个分离的日志中)结合“前滚”(roll-forward)技术(当出现失败时,它使用日志重复部分已进行的更新操作)就足以实现该目的。
每个对象所需的一个导出属性为“版本”,它会随着该对象的每个改动而变化;版本属性可以表示为一个单调增加的整数或其它生成版本的单调顺序的表示方法。可被复制的每个对象的模式中包括一个被称作“源版本”的属性,它表示被复制对象的版本。
观看对象的传输并不保证每个客户都能接收到该对象。例如,当对象正被广播时,外部因素(如太阳黑子)可能会破坏部分传输序列。观看对象可以继续重传以克服这些问题,这就意味着同一对象可能被复制多次。每接收到一个被复制的对象就简单地更新数据库对象是不合适的,这是因为内容虽然并未实际发生变化而版本号却增加了。此外,人们期望避免不必要时启动更新对象的事务处理;在事务处理期间,会消耗相当大的系统资源。
两种方法结合可以解决这一问题。首先,多数对象将具有一个称作“过期”的基本属性。这是一个日期和时间,过了这一日期和时间对象就不再有效而应该删除。当接收到一个新对象时,就会检验过期时间,而如果过期,则应该删除该对象。“过期”用于处理以某种方式传送被延迟的对象,但它并不处理同一未过期对象多次接收的问题。
源版本属性可以解决这一问题。当传送观看对象时,这一属性拷贝自源对象的当前版本属性。当接受观看对象时,接收到的对象的源版本要与当前对象的源版本进行比较。如果新对象具有更高的源版本属性,则复制新对象作为当前对象,否则删除它。
假设向任何特定的客户系统发送了比感兴趣对象数量多得多的观看对象。例如,其它有线系统的客户对描述特定有线系统的频道的“频道”观看对象不感兴趣。由于捕获和增加数据库新对象的开销,应该就除上述属性外的其它属性对接收的对象进行过滤。本发明通过使用基于对象类型和属性值的过滤过程来完成此任务。在一个实施过程中,这种过滤过程基于运行某种可执行代码(可以作为一个命令序列),这种可执行代码是通过具体了解各种对象类型以及如何对其进行过滤而编写的。
在本发明的一个优选实施例中,“过滤”对象是为每个对象类型进行定义的,它用于指示加入数据库需要什么属性、应该没有什么属性、或者可接受的属性取值范围。本领域的技术人员将容易地意识到:这种过滤对象可以包括某种形式的可执行代码,也许作为一个可执行命令序列。这些命令可以检验和对比正被过滤对象的属性和属性值,从而指示该对象是否应该是进一步处理的对象。
观看对象很少独立于其它对象。例如,“显示”(“showing”)对象(描述具体频道的具体时间)从属于“节目”对象(描述具体的TV节目)。要保持一致性,一个重要问题是确保所有从属对象或早已存在于数据库中或在试图增加新观看对象前将作为单一处理的一部分添加。这可以通过使用新观看对象的一个基本属性(称作“从属”属性)来实现,该属性仅列出了新对象从属的对象的对象ID和源版本。很明显,一个对象的新版本必须是兼容的,也就是定义新版本的模式要与原始模式相同或具有原始模式属性的一个严格超集。
当接收到新观看对象时,首先检验数据库以查看是否存在该对象的所有从属对象;如果有,该对象就被增加到该数据库中。否则,就将新对象“阶段处理(staged)”,将其保存在保持区内直到所有从属对象也被阶段处理。很明显,为了将一组新的观看对象增加到数据库,根据对象ID和源版本,在阶段处理区域内的对象和已在数据库中的对象之间,依赖图必须是闭合的。一旦实现闭合,这意味着所有从属对象均存在,则利用一个基本处理将新的对象增加到所述数据库中。
命名和查找电视观看对象
上面已就目录对象进行了描述。参照图4,目录对象集合、和通过从根路径400开始并列出到观看对象的所有可能路径而形成的有向图称作“名字空间”。为了无需知道具体对象ID而能找到某个对象,该名字空间内的一个或多个路径必须引用该对象。例如,应用软件不会关注对象ID,而会利用路径来引用对象,如″/tvschedule/today″。在这个实例中,引用的实际对象每天都可能变化,而不要求在系统的任何其它部分进行变化。
一种建立到某一对象的路径的方法是,通过指定该对象的一个“路径名”基本属性。对象被增加到所述数据库,而描述路径组成的目录对象会被创建或更新以增加该对象。这种命名典型地仅用于调试复制机制。由于复制到每个客户系统上的部分中央数据库将不会相同,导致给管理数据库中所有副本的路径名带来很大困难,所以不鼓励设置显式路径。
向数据库名字空间添加对象的优选方法被称为“索引”。在本发明的优选实施例中,每个对象类型均定义了“索引编制器(indexer)”对象,用于指示当将其标引到数据库名字空间时要使用什么属性。本领域的专业人员将容易地意识到:这种索引编制器对象可以包括某种形式的可执行代码,也许作为一个可执行命令序列。这些命令可以检验和对比正被标引的对象的属性和属性值,从而指示该对象应被定位到名字空间中的什么位置。
根据对象类型,索引编制器检查对象的一组具体属性。当这种属性被发现时,根据属性的取值,索引编制器会自动将对象的名称添加到在数据库中由目录图表示的等级名字空间中。再次参照图4,节目对象401可具有“演员”属性值为“John Wayne”和“导演(director)”属性值为“John Ford”。根目录可以指示两个子目录:“按演员(byactor)”402和“按导演(bydirector)”403。然后,索引编制器会将路径″/byactor/John Wayne″和″/bydirector/John Ford″添加到数据库,两者均指的是同一对象401。
为每个列举引用该对象的目录对象的对象维护一个导出属性404。当索引编制器将路径增加到该对象的名字空间时,它将路径中最后的目录ID添加到该清单中。这保证了对象图的闭合-只要对象被找到,也就找到了数据库中对该对象的所有引用,而不管它们是路径还是从属属性。
这种具有新颖性和创造性的把对象增加到数据库中的方法,与标准方法相比具有明显的优点。当增加对象时,索引编制器将该对象进行分类并加到数据库。这样,与特定路径相关的对象搜索就成为一系列从有序清单中的选择,它能够由本领域的专业人员有效地实现。
从数据库中删除对象
虽然将对象添加到数据库的规则很重要,但从数据库删除对象的规则在保持一致性和准确性方面也很重要。例如,如果缺乏稳定的删除对象规则,数据库就可能随着作废对象的增加而随时间无限制地增大。
从数据库删除对象的主要规则基于引用计数;引用计数为零的对象应立刻删除掉。例如,这意味着一个对象必须或者被一个目录引用或者被其它对象引用以保留在数据库中。基于正被删除的对象,这种规则适用于闭合依赖图中的所有对象。这样,如果引用其它对象的对象(如目录)被删除,则被引用的所有对象的引用数将减小,而那些引用数为0的对象则同样地被删除,依此类推。
也可以具有一种称作“收割器(reaper)”的从数据库删除对象的自动过程。收割器周期性地检查数据库中的所有对象,并根据对象的类型,进一步检查多种属性和属性值以确定该对象是否应该保留在所述数据库中。例如,过期属性可指示对象不再有效,而收割器将删除该对象。
在所述优选实施例中,使用与上述过滤和索引方法相类似(或相同)的方法,收割器可以访问与当前对象的对象类型相关的收割器对象,其可以包括各类可执行代码,也许是一序列可执行命令。该代码会检查当前对象的属性和属性值,并确定是否应该删除该对象。
单个地删除引用计数已减至0的每个对象的开销可能相当高,这是由于每个这样的删除操作会产生一个数据库事务处理。对收割对象的性能影响进行限制是有好处的,这样就可以以最快速度处理前台操作。在一个优选实施例中,这可以使用一种基于通用无用单元收集法的技术来实现。
例如,收割器除了执行删除引用计数已降至零的对象的任务以外并不执行其它操作。称作“无用单元”收集器的后台任务会周期地检查数据库中的每个对象。如果对象的引用计数为0,它就被添加到删除对象清单中。在一个实施例中,一旦“无用单元”收集器检查完整个数据库,它就会用一个事务处理删除所有这些对象。本领域的技术人员将意识到:由于在删除对象时可能会延迟对数据库的其它访问操作,所以这种方法也会产生显著的性能恶化问题。此外,如果所有对象要被适当地删除,当无用单元收集器激活时,可能必须延迟数据库更变,从而导致性能甚至更差。
在一个优选实施例中,“无用单元”收集器一趟趟地检查数据库。一旦收集到特定数量的对象,它们就利用单一操作删除。所述过程一直持续到检查完所有对象。这种技术并不能保证在检查过程中所有无用对象均被收集,这是由于并行活动可能会释放已检查的对象。然而,这些对象会在下次运行“无用单元”收集器时找出来。每一趟删除的对象数量是可以调节的,以便其它数据库活动获得可接受的性能。
分布式电视观看对象数据库的操作
维护分布式观看对象数据库时需要考虑的问题
在分布式数据库的实例中,电视观看对象的复制必定需要在不可靠和不安全的分发信道上传送。
例如,如果对象通过广播机制传送,如利用无线电或电视传输,可能就无法保证数据被精确或完整地传输。如暴风雨等气候因素可以导致传输信号丢失。其它干扰源可以是其它广播信号、沉重的设备、家用电器等。
本领域的专业技术人员将容易意识到:现有某些管理不可靠信道上数据传输的标准技术,其中包括重复传输、纠错码等,其可用于传输,并在任何特定的场合可以采用其中的一部分或全部技术。
为了更高效,要复制的对象被集中起来形成本文称作“切片(slice)”的分发包。一个切片便是在特定区域内(如地理区域或卫星转发器的覆盖区域)与客户关联的电视观看对象数据库的一个子集。
这些切片的安全性十分重要。切片用于向数据库添加对象,其可用于向数据库用户提供有价值的服务,以及储存可被认为是专用或保密的信息。由于切片传输的定向广播的特性,当它们被传送时,切片容易被第三方复制。一个解决这些问题的实用方案就是在传送过程对切片进行加密。有关本发明所使用技术的理想的参考书是,1995年由BruceSchneier,John Wiley and Sons出版的“Applied Cryptography:Protocols,Algorithms,and Source Code in C”(“应用密码技术:协议、算法、和C语言编写的源代码”)。
在本发明的优选实施例中,使用与美国专利号第4,405,829号中描述的相似技术建立了一种安全的、经加密的信道,其通常被描述为非对称密钥加密、或有时称为公钥/私钥对加密。本领域的专业人员将会意识到:基于不对称密钥加密的协议是客户设备验证和信息保密分发的可靠和有效的基础。一般而言,验证过程是利用客户与中央系统之间交换符号消息来实现。通过在验证期间发送短期对称密钥对所有通信进行加密,可实现安全的分发。
实现有效安全性要求发送方与接收方预先认可加密所使用的非对称密钥对。在保护电子数据的任何加密系统中,这种密钥的分发是最脆弱的环节。也由本申请人拥有的1999年7月19日提交的专利号为6,385,739的名为“Self-Test Electronic Assembly and Test System”(“自检电子组件和测试系统”)的美国专利描述了一种机制:作为制作过程的最后一道工序,客户设备会自动生成非对称密钥对。这样生成的私钥存储在嵌入客户设备中的安全微处理器中,这样,该密钥就永远不会出现在外部设备上。这样生成的公共密钥被传输到一个本地制造的系统上,它在保密数据库中与客户序号一起记录该密钥。之后,这个数据库被安全地传送到中央分发系统,在那里它用于实现与客户的安全通信。
这种具有创造性和新颖性的密钥生成的应用解决了密钥分发的问题,因为私钥决不会出现在客户端的外部部件上,在那里它可以使用特殊工具(例如逻辑分析器)鉴别。实际上,它可仅用于安全微处理器本身内部,以对最初由公钥加密的消息进行解密,其结果随后被提供给外部部件。
本说明书的剩余部分假定客户与中央系统之间的所有通信均被鉴别并如上所述进行了加密。
向客户系统传送观看对象
再次参照图1,在本发明的优选实施例中,使用切片从中央数据库“传输”电视观看对象的步骤如下:
1.可能存在多种向客户观看设备全体传送切片的机制。例如,切片可以直接通过电话调制解调器或线缆调制解调器下载109,它们可以被调制为标准电视广播的垂直消隐间隔(VBI)的行108,或作为一条专用数据信道加到数字电视多路复用信号上。本领域的专业人士很容易地意识到:能够传送数字信息的任何机制均可以用于传送电视观看对象数据库的切片。
准备传输电视观看对象的第一步是:识别用于这种特殊情况的传送机制,以及创建为这种机制定制的数据库子集切片。例如,数据库可以包括与这一国家内所有节目相关的电视查看对象。然而,如果对本地电视信号使用VBI调制发送电视观看对象,在相关的切片中应该只包括那些用于承载其的电视广播的覆盖区域内能观看节目相关的电视观看对象。可替换地,如果一些电视观看对象包括与特定地理区域相关的宣传材料,那些对象不应该传送到其它地理区域。
在本发明的优选实施例中,遍历数据库及生成传送切片的速度和周期是可以任意形式调节的,以便能作出有益的成本/性能的折衷。例如,可能只需要每隔一天或每小时为特定传送方法创建切片。
每个切片准备的最后一步,是使用暂时对称密钥对切片进行加密。只有经安全协议认证的客户设备将具有这种对称密钥的拷贝,从而使它们能够对切片进行解密并访问其中的电视观看对象。
2.一旦完成切片,它就被复制到传送机制接收并发送这些数据的地点110。对于电话连接,切片被放置在电话服务器111上,当调用时,它向每个客户提供数据。如果使用电视广播,切片则被复制到与电视台发射机在一起的设备上,从那里它被调制到信号上。在这些以及相类似的面向广播的情况中,切片被“轮播”,即持续重复描述切片的数据,直到有新的切片提供传输。
由于无法保证承载数据的信号能可靠地到达每个客户,所以需要重复广播切片。客户设备可能断电,或信号接收可能受到干扰。为了达到所有客户设备正确接收传送切片的高概率,它们会被连续地重复广播直到有更新切片可供传输。
本发明的优选实施例使用广播机制(如电视信号)传送切片。然而,期望通过基于连接机制保证下载,如调制解调器或互联网连接。使用基于连接的机制通常基于使用时间来收费,这就期望以最少的时间传输切片。
这可以使用两步过程来实现。当建立连接时,客户系统向电话服务器111发送以前接收的切片清单。服务器将这种存量(inventory)与应该已被该客户处理过的切片清单进行比较。未处理的切片被传送到客户系统。
3.通过将加密切片分为连续的短编号数据包,传送这种切片。这些数据包由客户系统捕获,并保持在分级(staging)区域内,直到序列中所有数据包均到齐。数据包被重新装配为切片,然后进行解密。切片内的电视观看对象然后经适用性过滤,或许被添加到本地电视观看对象数据库中。这一过程就将电视观看对象的中央数据库的一部分可靠地复制到客户端。
本发明会跟踪数据包接收的时间。比选定时期旧的数据包会被周期地从分级区域中删除;这避免了等待要传送的切片的所有部分时不确定周期占用的空间。
尤其当通过广播介质传送对象时,可能会在传送的数据中出现多种错误。每个数据包附有一个纠错码(如奇偶校验字段或CRC码)。当检测到一个错误时,数据包会被简单地删除。广播轮播传送最终将重传该数据包,它可能会被正确地接收。这样可以可靠地传送任何大小的切片;这是客户端以分段接收部分对象直到正确地接收到所有部分为代价而实现的。
4.尤其是对服务验证信息,可能要向客户系统传送一个或多个与通信服务相关数据的“特殊”切片。如果观众没有付费或由于其它操作原因,业务提供商能够控制客户系统对额外费用服务的访问是非常重要的。
一种特定类型的特殊切片包括一个“权限”对象(authorizationobject)。根据与具体客户相关的公钥/私钥对,常使用非对称密钥加密法对权限对象进行加密。如果使用嵌入的私钥由安全微处理器可以对切片进行成功解密的话,该切片将包括指示在接收到另一个权限对象前允许的时间延迟的对象,以及短期有效的一个或多个对称密钥。延迟值用于重置数据库中的时间戳,它用于指示客户系统何时将停止提供服务。对称密钥被存储在本地电视观看对象数据库中,用于对可能接收到的新切片进行解密。
如果客户端在数据库中设置的时间前未接收到合适的权限对象,则观众将无法使用多种服务(如服务提供商所规定的)。权限对象中还包括一个或多个解密传送切片所需的限时下载密钥。很明显,如果客户系统不能验证自己,它将无法解密任何对象。
每个权限切片(authorization slice)单独地生成和传输。如果切片使用广播传输,所有相关的授权对于所有其它的切片而言会同样对待,并与所有其它数据一起被轮播。如果使用直接传送,如通过电话连接,则仅传送该客户的认证切片。
5.一旦客户设备接收到完整的数据库切片,它就使用以前描述的方法将其包含的新对象添加到数据库中。
从客户系统收集信息
再次参照图1,在本发明的优选实施例中,从每个客户数据库中“收集”电视观看对象包括以下步骤:
1.当观众浏览其可用的电视频道时,客户系统将记录其感兴趣的信息,如调谐的频道、调谐的时间、停留的时间、类似VCR的操作(例如暂停、倒转)以及其它感兴趣的信息。该数据被存储在本地电视观看对象中。
此外,观众可能会表示出对可供的节目或宣传的兴趣,或表示出购买一个项目的期望。该信息也被记录在本地电视观看对象中。
此外,客户设备的操作可生成出应当记录在电视观看对象中的重要数据。例如,当从客户端的硬盘驱动器中读取内容时,可以出现错误,或者设备的内部温度可能超过操作参数。其它类似类型的信息也可能会导致对象下载的失败、用各种光磁盘操作的空间、或迅速的动力循环。
2.在某一时间(立刻或周期地),客户系统通过直接连接104(通常通过电话和/或互联网连接)与中央站点连接。客户设备将发送一个由其秘密密钥加密的字节序列标识自己。服务器从数据库中取出与客户设备匹配的电视观看对象,并使用存储在那里的密钥对字节序列进行解密。同时,服务器向客户端发送一个以其秘密密钥加密的字节序列,给客户用于对话的新的一次性加密密钥。
双方必须都成功地解密其验证信息以进行通信。这种双向信号交换是重要的,因为它向客户与服务器双方保证另一方是有效的。这种验证对于避免可能对客户系统发生的各种攻击是很有必要的。例如,如果通信未以这种方式进行认证,恶意的一方可能创建一个具有不健康电视观看对象数据库的“别名”中央站点,并向客户系统提供不好的信息,产生不适合的操作。使用一次性会话密钥,对所有以后的通信进行加密。由于信息可能通过一个网络(如互联网),其中数据业务易受到所有其经过的设备的检查,所有需要对通信进行加密。被收集的查看对象可能包括隐密信息,所以这种信息必须一直受到完全保护。
假设认证阶段是成功的,双方利用全双工电话线作为两个单向广播信道。新的切片被发送到客户端,而被收集的观看数据被发回。当所有数据都被传送时,连接结束。
本领域的专业人员将容易地意识到:这种连接可以利用网络(如运行标准的TCP/IP协议的互联网)实现,显而易见地适合系统中的所有其它软件。
3.服务器对上载信息以相似的方式进行处理;假设将要复制的电视观看对象提供给中央数据库。然而,由于可能存在许多服务客户,所以可能存在许多上载的观看对象。因此,上载对象被分配一个包括其源信息的可导航的属性;当被加入时,对象被唯一地标引到数据库的名字空间中。
上载观看对象不会立即加入到中央数据库中;而是对其进行排队以便以后插入到数据库中。这一步骤允许队列处理独立于客户设备的连接模式。例如,许多设备可能立即连接而生成大量对象。如果这些对象立即被添加到中央数据库中,所有连接的性能会受损失,而连接时间会增加。电话按通话时间进行付费,因而任何随装载不同而增加连接时间的系统都是无法接受的。
这种分离的另一好处在于:容易容忍机器或网络故障。此外,通过改变计算机系统及其配置,业务提供商可以控制处理观看对象和添加中央数据库的速度以满足成本或性能目标。
这种分离的又一个好处在于:它提供了一种机制,用于分离为改善服务操作而收集的数据和可以标识各个观众的数据。这种标识数据秘密地保存是非常重要的,这不仅出于合法原因也是为了增加个人对服务的信任。例如,为包括观众的观看选择记录的观看对象而分配的可导航属性,可以仅包括观众的邮政编码,这意味着对这些对象的进一步处理可以不用创建返回单个身份的路径。
在服务器上,调用周期性任务以从数据库选出这些对象并对其进行适当的处理。例如,指示观众行为的对象被集中到一个总的观众行为模型中,而删除可以标识单个观众的信息。包括操作信息的对象被转发到一个分析任务,它可对潜在的问题向客户服务人员告警。包含交易信息的对象被转发到交易或商务执行系统。
任何这些活动都可能导致向中央数据库增加新的电视观看对象,或对现有对象进行更新。这些对象将最终被发送到客户设备。因此,电视观看管理系统为闭环的,可创建一个能支持任何数量客户系统的自维护复制数据库系统105。
客户系统对电视观看对象的处理
电视观看对象可包括如下类型的信息:电视节目描述和播出时间;电缆、卫星、或广播信号发方信息,如频道编号和标志;观众喜好信息,如演员、类型、播出时间等;软件,如增强的数据库软件、应用软件、操作系统软件等;统计建模信息,如选择向量、人口统计分析等;以及可表示为数字数据的任何其它的任意信息。
应用于节目导视对象的方法
节目导视对象包括软件在客户系统中运行所需的所有信息,以进行调谐、接受、记录和观看客户系统用户感兴趣的节目,它们是从数据库中对象描述的所有可用节目和频道中选择出的。
这种节目导视信息可由业务提供商有规律地进行更新。这可以由获得节目导视信息(例如,从这种信息的商业提供商或广播节目信息的其它来源)的提供商以某种方式进行处理。然后使用已知的软件技术,对这种数据进行处理以把信息简化为内部相关观看对象的集合。
再次参照图4,其显示了节目导视对象之间的典型关系。在电视“网络”对象407是调度和广播电视节目的任何实体,不管这种广播是用无线电、电缆、卫星、或其它适合介质来进行。电视“节目”对象401是电视广播信号的任何特别片段的描述,如特定节目、商业广告、电视台宣传、开场、节目预告片、或电视信号的任何其它有限部分。“播放”对象406是节目广播网络的广播时间表的一部分。“通道映射表”对象将网络广播映射到使用介质的特定广播通道上;例如,卫星广播服务的通道映射表对象可能包括有关转发器和包括广播的数据流的信息。使用以前描述的方法,这种节目导视数据从中央站点复制到客户系统,其中客户系统中的应用软件使用这些数据以对电视观看进行管理。
服务提供商也可以提供集合观看对象,其描述以某种方式互相关的一组节目导视对象。例如,″Star-Trek″集合可包括与该商标名相关的所有节目导视对象的参数。很明显,可以利用这种方式集中任意一组节目。集合对象类似于目录。例如,Star Trek集合可以在等级名字空间中的″/showcases/Star Trek″中找到。集合对象也是节目导视对象,并可以以相似的方式进行控制,其中包括聚类集合对象等。
客户系统可进一步精选节目对象集合。在一个节目可被捕获到内部存储器的系统中,每个捕获节目由一个新节目导视对象表示,从而可供观看、聚合等。明确的观众操作也可导致产生节目导视对象。例如,观众可选择一些节目并产生新的聚类对象。
这并不意味着这种对节目导视对象类型的描述是包括一切的;可存在在本文虽未描述、但得益于本发明基本方法的生成节目导视对象的许多不同用法和方式。
应用软件可以利用5种方式使用节目导视对象:
1.在最简单的情况中,观众可能希望浏览这些对象以识别当前或马上可用的节目。应用软件会将由数据库描述的对象关系映射到观众便利和可用的某种形式的可视和声音界面。观众可指出感兴趣的特定节目,产生某种应用特有的操作,如当节目广播时将节目记录到本地存储器。
2.应用软件也可以直接处理节目导视对象以选择观众可能感兴趣的节目。这种过程一般基于结合统计模型的对以前观看节目的分析,产生所有可选节目的优先顺序。最高优先级的节目可以利用应用特有的方式进行处理,如广播时将节目记录在本地存储器中。这样产生的优先顺序部分可以如第一种情况提供给观众作出其它选择。
本领域的专业人员将容易地意识到:存在许多现有技术,其集中于基于以前的观看历史和明显偏爱为观众选择节目的方法,如美国专利第5,758,257号。相对于那些技术而言,本申请中描述的方法具有新颖性和创造性:它们提出的不是节目广播或传输的优先级而是节目捕获的优先级,并且对节目可能何时广播没有时间限制。这些方法的具体细节将在本说明书的后面给出。
一般而言,观众对节目的明确选择具有最高优先级,后面是使用本文描述的选择技术所选的节目。
3.客户系统将具有少量能够接收电视广播或访问网络(如内联网或互联网)上的Web页面的输入。调度方法用于选择如何调谐每个输入以及什么同产生的捕获电视信号或Web页面有关系。
参照图6,一般而言,如节目导视对象所描述的,观众感兴趣的节目可以在任何时间任何频道进行广播。此外,感兴趣的节目可以是网络上Web页面的通用资源定位符(URL),如内联网或互联网。频道隐喻(channelmetaphor)也用于描述特殊Web站点或页面的位置或URL。
例如观众可以将网络站点URL指定作为一个频道,而“调谐”进入该网络站点。一旦选择了该频道,就会显示该网络站点。一个Web页面也可被指定为一个感兴趣的节目,而在预定的时间对Web页面进行快照和记录。
调度程序将节目观看首选项603的优先清单作为输入,可以按上述情况生成。然后,调度方法601将该清单与节目导视对象604的数据库进行对比,其指示感兴趣的节目实际上何时广播。然后,它生成一个时间607与可用存储空间606的时间表,优选对于观众的明确或导出的优选节目。这些方法的详情将在本说明的后面给出。
4.当观看捕获的节目时,匹配的节目导视对象用于提供有关节目的附加信息,它可以使用任何适合技术重叠在显示器上,优选地为某种形式的屏幕显示(OSD)。这种信息可包括但不局限于:节目名称;最初广播的时间、频道或网络;终止时间;运行时间或其它信息。
5.当观看现场节目时,应用程序使用当前时间、频道、和通道映射表以找出匹配的节目导视对象。使用如上所述的任何适合的技术显示来自这种对象的信息。当观众改变频道时、新节目开始时、商业插播节目后节目重新开始时、根据观众的点播、或基于其它情况,该信息可以自动地进行显示。
6.使用类似于第二种情况中描述的技术,应用软件也可以捕获观众可能感兴趣的宣传材料。这种信息可以根据观众需要显示,或可以在某一适合的时间自动插入到输出电视信号中。例如,广播节目中的广告可以由具有更高选择优先级的不同广告替换。使用时间校正(time-warping)设备,如在1998年7月30日提交的、题目为“MultimediaTime Warping System”(“多媒体时间校正系统”)的美国专利第6,233,389号中所描述的设备,可以将任何存储的节目在任何时刻插入到输出的电视信号中。当插入的存储节目播放时,时间校正设备可以延迟被覆盖的节目。
生成首选节目清单的方法
可以利用多种方法取得观众的首选信息。观众可以申请捕获特定的节目,从而产生这些节目的最高可能的优先级。作为选择,通过回复特定节目的宣传地点或甚至在观看节目时,观众都可以使用通过观众界面提供的选项(appurtenances)明确地表示其喜好。最后,首选项信息也可以从观看模型得出:观看过的节目、观看或跳过的商业广告等。
在所有情况下,这种首选项必须对应于复制数据库中所存储的电视观看对象。节目对象包括有关每个特定节目的大量信息,如:标题、说明、导演、制片人、演员、分级等。这些要素(elements)作为附于节目对象的属性进行存储。
每个单独属性可产生首选项对象。这种对象储存以下信息:
1.首选项的类型,如演员或导演喜好;
2.观众给出的首选权重,它可以通过多次按键或其它方式指示;
3.静态分配的相对于其它首选项的重要性,如演员首选项要比导演首选项更重要;
4.首选项的实际值,例如导演的名字。
参照图5,首选项对象以相似于描述节目导视对象的等级存储在数据库中,然而这种等级随首选项的明确而增加500。这样构建的等级基于“直接”首选项,例如来自观众动作的首选项或推断出的首选项。
基于针对同一首选对象的“间接”首选项501而开发了类似的等级。一般而言,当生成聚类对象的首选项时会生成间接首选项,且它们被用于进一步权衡聚类对象集合暗指的直接首选项。通过列举聚类对象502部分的可用节目对象,并生成或更新这样找出的首选项对象的每个属性,便可以生成或更新通过间接首选等级而定位的首选项对象。
特定首选项503的权重以0开始,然后根据表示的(也许通过多次按键)首选等级增加某个标准值,或者如果已表示不感兴趣,则减去标准值。如果首选项是根据聚类观看对象表示的,则属于聚类对象的所有观看对象生成的所有首选项具有相同的权重。因此,相关首选元素的新权重可以从以前的权重生成。这一过程由允许表示的首选项等级界定,从而所有权重均落入界定的范围。
在本发明的一个优选实施例中,非线性结合可以用于权衡首选项。例如,使用中央站点提供的统计模型,客户可以推断出:三个属性一起具有高权重的首选表明第四个属性也应该同样具有高权重。
首选节目清单的生成过程如下:
1.生成列出每个可能节目对象属性的表504,且在该项目中也列出了具有该属性的任何首选对象。
2.如果首选项是一个字符串,如演员名字,则使用32位CRC算法计算该字符串的32位数字签名,并用表项而不是字符串本身进行存储。由于避免了字符串的比较操作,这样就可能以两个不同字符串生成同一数字签名的轻微风险,而更快地扫描该表。
3.对数据库中的每个节目对象和该节目的每个属性,在表中查阅该属性。如果存在,则检查该属性首选对象的清单中是否有与当前节目对象的属性的匹配。如果存在匹配,则将与该首选项对象相关的权重加到与该节目对象相关的权重中,以生成该节目的单一权重。
4.最后,节目对象基于每个节目的总权重进行等级排队,从而产生从最优选到最不优选节目的清单。
鉴于这种最终的优先清单,使用下述方法生成记录调度,从而形成观众最感兴趣的记录的节目集合。
调度记录与可用存储空间的方法
如上所述,记录的节目一般都具有一个过期日期,过了这一日期,记录的节目将从客户的存储器中删除。观众可随时指示将一个节目存储更长的时间,其通过观众选择的时间区间而延迟过期日期。本发明将记录节目的可用存储视为一个“高速缓存”;根据观众在记录后如果未立刻观看则不会再观看的假设,未观看的节目经过一段时间会被删除。根据不再对观看过的节目感兴趣的假设,观看过的节目将会立即视为删除的候选对象。
通过对旧节目记录和删除的适当调度,因为存在正在进行的对旧节目的删除及新节目的增加,可以使较小的存储区域看似很大。此外,如果有可用的资源,可以根据推测的观众首选项,预定节目的记录。这些称为“模糊”记录。这可以产生节目存储区域内总“充满”观众感兴趣的节目的系统;直到有另一节目记录在其位置或观众明确要删除,这些节目才被删除。
此外,观众可随时选择一个要记录的节目,而当必须记录节目时,记录窗口可能会与其它已排好的记录相冲突,或没有足够的可用空间。本发明包括解决这种冲突的创造性和新颖性的方法。
出现冲突有两个原因:存储空间不足,或输入源不足。本文描述的电视观看系统包括固定量的记录视频的输入源和存储记录的视频的有限容量的存储介质,如磁盘。记录任意显著时间周期范围内的所有电视节目广播是不可能的。因此,解决因资源限制而出现的冲突是具有可供观看的适合节目的关键。
再次参照图6,本发明包括两种调度:空间调度601和输入调度602。空间调度跟踪所有当前记录的节目以及已被安排以后记录的节目。可以通过生成所有已占空间(或该时刻将占用空间)的总和,并与总的存储节目可用的空间相减,就可以得到任一给定时刻可用的空间容量。计算中,并不计入根据推测的优先选择(“模糊”记录)做出的安排记录的节目;这种节目将自动不作所有的冲突判断。
如果在启动记录和终止记录之间总有足够的空间容纳它,则可以记录节目603。此外,在节目播放期间,必须有一个可用输入以便从它那儿记录节目。输入调度602会跟踪每个输入源的空闲以及占用的时隙。在本发明的一个优选实施例中,输入源可以不用于同一服务,如一个输入可以来自数字电视信号,而另一个来自不同节目的模拟电视信号。在这种情况中,在调度期间,只考虑那些从其能够记录期望节目的输入。
参照图7,其显示了描述优选实施例中调度记录所采取步骤的流程图。首先,生成一份感兴趣的播放节目的排序清单701。虽然,本发明的优选实施例按时间对这些播放节目进行排序,这样就能尽快地进行记录,但可以选择任何特定的排序。然后检验这一清单的每个放映内容702以查看,如上所述,是否出现输入703或空间704冲突。如果未发现放映冲突,则为记录调度节目705。
否则,本发明的一个优选实施例仅选择那些没有输入冲突的节目放映706。再次参照图6,可以看出在记录的生命期内,可用空间的数量随着其它节目的记录或过期而会发生变化。然后对放映清单进行排序,优选地按照候选记录生命期内最小可用空间量顺序。也可以选择其它顺序。
再次参考图7,对于每个候选的放映,观众具有缩短冲突节目过期日期的选择708,709。这种排序会使观众从对调度节目影响最小到最大的顺序排序这些选择707;本发明并不要求使用这种排序而不使用其他排序。
如果观众拒绝所有缩短过期时间的机会,最后步骤包括选择具有输入冲突的那些放映710,并如在第一个冲突解决期间对这些放映进行排序711。然后,观众可以选择取消每个以前调度的支持所希望节目的记录712,713。当然,观众可能最后决定不记录任何新内容714。
在本发明的一个优选实施例中,给观众对记录内容更多控制权,这样所有冲突都可以尽早解决。当观众明确地选择了一个要记录的节目时,图7中描述的算法则用于立刻安排记录和管理出现的任何冲突。
一旦做出明确的选择,并且观众被通知将进行记录时,则未经观众明确同意就不会取消记录过程。
客户设备的后台任务会周期性地调度模糊记录。考虑到如上所述的优先节目的优先清单,后台调度程序会试图按顺序调度每个优先节目直到清单的末尾或没有进一步记录的机会。当且仅当没有与其它调度节目的冲突时,才调度优先节目。已被调度的优先节目可以在以下两种情况中可以被删除:第一,如果它与明确选择相冲突;第二,如果观众首选项发生变化而指示在那时可以记录更高优先级的节目。
当处理请求记录的聚合观看对象时,处理则更加复杂。如果对这样的对象按以上方法处理冲突解决方案,则可能产生大量潜在的冲突,导致观众为解决这些冲突而精疲力尽。因此,当选择聚合对象进行记录时,则应有利于现有调度而自动解决冲突。
在本发明的一个优选实施例中,利用所涉及节目的优先权重来解决由聚合对象的记录所产生的冲突;如果聚类对象中的特定节目导致多个冲突,则它只有当其优先权超过所有冲突节目的优先权时才被记录。
应用于软件对象的方法
客户系统需复杂的软件环境以正常操作。一种操作系统管理客户端硬件设备与管理这些设备的软件应用程序之间的交互作用。电视观看对象数据库由独特的软件应用程序管理。而时间校正软件应用程序是另一个应用程序。
人们会期望在客户硬件设备上运行的这些和其它软件子系统中增加新的特性或解决它们中的缺陷。使用本文描述的方法,可以将包括更新软件模块的观看对象复制到客户系统数据库中。一旦出现在客户系统数据库中,则使用以下具有创造性和新颖性的方法来安装更新软件,并使客户系统开始执行新软件。
设备的软件环境可用具体例子说明为当首次向设备施加动力时发生的一系列步骤,每一步骤都会建立状态信息,其支持下一步骤的正确应用。最后的步骤启动管理设备和与观众交互的应用程序。这些步骤包括:
1.将指令的初始自举序列装入设备中的只读或电子可编程内存。这些指令会对客户设备的低级参数进行初始化、对磁盘存储系统进行初始化、并将自举装入程序从磁盘调入内存,然后执行。如果驻留在电子可编程存储器中,则这种初始自举可能会被改动。
2.然后,第二阶段的引导装入程序定位磁盘驱动器上的操作系统,将操作系统载入内存,并执行操作系统。这种加载程序必须位于磁盘上具体的位置,以便由初始加载程序方便地进行定位。
操作系统执行必要的硬件和软件初始化。然后,它从磁盘驱动器上载入观看对象数据库软件,并开始执行该应用程序。其它应用软件(如时间校正软件和观众交互软件)也被加载和启动。这种软件通常定位于磁盘上与对象数据库或捕获的电视节目分离的区域。
理想地,新软件通过简单地将其复制到磁盘驱动器上的适合位置并重新启动该设备来安装。这种操作充满着危险,尤其是在家庭环境中。当复制软件时可能会断电,而导致不一致的软件图像和潜在的操作问题。新软件可能具有阻止正确操作的缺陷。磁盘驱动器可能会发生故障,而破坏软件图像。
虽然本发明的方法已参照磁盘驱动器,但本领域的专业人士会意识到:本文描述的方法通常可应用于任何永久性存储系统。磁盘驱动器和其它永久性存储系统一般被格式化为一系列称作扇区的固定大小的块。“分区”是这种序列的顺序、无重叠的子集,它将存储器拆分为逻辑上独立区域。
参照图8,本发明将一个信息扇区(称为“启动扇区”804)保持在磁盘驱动器803的一个固定位置处。启动扇区804包括有关初始引导程序801足够信息,以了解驱动器803的分区和定位第二阶段引导装入程序806。
磁盘被分为至少7个分区。有2个小分区专用于容纳第二阶段引导装入程序806的拷贝,2个分区容纳操作系统内核807的拷贝,2个分区容纳应用软件808的拷贝,以及一个分区用作暂时存储器809。对于复制的分区,某种提示被记录在启动扇区805中,其中一个分区被标记为“主分区”,而另一个标记为“备份”分区。
本领域的专业人员将容易地意识到:虽然这里描述了冗余的两个分区,但也可以通过创建更多的复制分区而达到3、4或更高的冗余度。
参考图9a和9b,在启动901时,初始的自举代码读取启动扇区902、扫描分区表并定位第二阶段引导装入程序的“主”分区。然后,它会试图将该程序加载入内存903中。如果未成功904,例如由于磁盘驱动器故障,引导装入程序会试图将“备份”分区中的程序加载入内存中905。不管哪种尝试成功了,引导装入程序然后向新加载的程序转移控制,以及从哪个分区加载程序的指示906。
类似地,第二阶段引导装入程序读取分区表并定位“主”操作系统内核907。如果无法加载内核908,则加载“备份”内核909。总之,控制、源分区指示以及从上面经过的源分区都会被传递到操作系统910。
最后,操作系统定位包括应用软件的“主”分区,并尝试加载初始应用程序911。如果失败912,操作系统则定位“备份”分区并从它那里加载初始应用程序913。源分区的指示和以前步骤中的源分区信息一起被传递到初始应用程序。这时,应用软件接管客户系统,并开始正常的观看管理行为914。
这种操作序列提供了适当程度的保护以防止磁盘存取出错。它也考虑到一种方法,其可以使新软件可以在任何安装层次安装并可靠地操作。
对象数据库中的“安装程序”观看对象用于记录软件安装尝试的状态。它记录了上面3级的每一级的分区状态,包括指示:安装新软件的尝试正在进行中915。由于数据库的事务特性,这种操作是可靠的。
参照图10,在这三级中任一级安装新软件图像的处理如下:新软件图像首先被复制到适合的备份分区中1001,并在数据库中建立软件正在安装的指示1002。然后,交换分区表中主和备份分区指示1003,并重新启动系统1004。最后,控件将被传递给初始应用程序。
再次参照图9b,该应用程序的第一个任务是更新安装程序对象。对于每一级921、922,应用程序校验安装是否已在进行着916、917,并校验该级是否已卸载主分区918。如果是那样,该级的安装就是成功的,并且安装程序对象被更新以指示该级是成功的919。否则,应用程序为该操作层复制备份分区而覆盖主分区,并指示该操作层安装程序对象发生故障920。复制分区可保证随时可以利用已知在某一操作层完好的软件备份。
在本发明的一个优选实施例中,软件顶端应用层安装会延迟到应用环境的所有部分均已成功加载和启动。这可以进一步地保证:在永久地切换到新软件前,应用环境的所有部分均正常地工作。
应用于操作状态对象的方法
操作状态对象是一类观看对象,其中记录有关客户系统的用途、性能和行为的信息。只要建立起与中央站点的通信,中央站点就收集这些对象。
以下操作状态指示器被记录用于以后与时间戳一起进行收集:
1.记录观众行为,主要是对遥控器的按键行为。每次“按键”与当前时间和任何其它前后关系信息(如当前观看的内容)一道被记录下来。在中央站点对这种对象的后处理产生对观众行为的完全跟踪,包括每次操作的前后关系(背景)。
2.记录下自动操作,如开始节目记录或结束节目记录,或根据观众优先权选择要记录的节目。此外,还要记录下捕获节目的删除操作。在中央站点,对这种对象的后处理实现对客户系统采取的节目捕获行为的完全跟踪,包括任何时候驻留在永久性存储中的节目。
3.记录下软件安装行为,包括接收、安装、以及后面的重启结果。
4.各种硬件的异常情况,包括但不限于:断电/重新启动、设备的内部温度剖面图、永久存储器存取错误、内存奇偶校验错误、以及主分区失败。
由于所有操作均与时间戳一起被记录,就可以使用线性时间顺序重构客户系统行为。这允许采用手动或自动方法操作事件的有序清单以关联操作和行为。例如,如果在采用新软件重新启动后未立刻出现期望的自动操作,则可以推断出新软件有缺陷。
由中央站点系统处理电视观看对象
电视观看对象源
客户系统具有电视观看对象的单一源:中央站点。中央站点对象数据库具有许多电视观看对象源:
1.从外部来源取得的节目导视信息经处理产生一致的一组节目导视对象,其中包括“节目”、“显示”、“频道”、“网络”以及其它相关对象。这组对象将具有依赖性(“频道”依赖于“网络”,“显示”依赖于“节目”)以及其它相互关系。当准备好完整一致的一组对象时,它会作为基本操作增加到数据库。
2.首先将新软件(包括新的应用程序或现有软件的更新)打包到“软件”观看对象中。如上所述,软件可以具有相互依赖性,例如一个应用程序依赖于一个动态加载库,其必须反映在所涉及的软件对象的相互关系中。在另一个实例中,可有两类使用的客户系统,每一个都需要不同的软件对象;这些软件对象必须具有指示它们所针对的系统类型的属性。一旦得到一致的一组对象时,它会作为基本操作增加到数据库。
3.每个客户系统具有嵌入在其中的一个唯一的、秘密密钥(私钥)。与该密钥匹配的公共密钥(公钥)与有关客户的其它感兴趣信息(如客户类型、系统存储容量等)一起被加载入一个“客户”管理对象中。这些对象根据需要用于生成验证对象。
4.利用相似的方式添加聚类节目导视对象。然而在这种情况中,聚类对象必须引用早已在数据库中的原始节目导视对象。也有其它对象附于聚类对象,如文字描述、屏幕图标、以及其它信息属性。一旦得到一致的一组聚类辅助对象,它会作为基本操作增加到数据库。
5.从客户系统收集的数据。
很明显可存在任何数量的观看对象源,而这种列举仅表明最基本可能的来源。
对电视观看对象的操作
对中央电视观看对象数据库,有大量可能的操作。以下实例仅为了表明可执行的处理类型,而可能的操作并不局限于这些实例:
1.使用各种观看对象,可以执行多种感兴趣的统计分析任务:
1.1.通过检查大量上载的操作状态对象,可以进行硬件可靠性趋势和失效模式的扩展分析。例如,可以将客户设备的内部温度与期望的MTBF(Mean Time Between Failures,平均故障间隔时间)关联起来。
1.2.通过检查大量上载的观看信息,可以取得有关客户设备的各种人群的人口统计或与个人心理发展过程史有关的信息。例如,可以将客户设备位于的特定邮编区域内最常看的电视节目关联起来。
1.3.类似地,不同于现有的节目收看率产生方法,通过检查大量的观看信息对象,可以利用全自动方法生成特定节目的“节目收看率”和“共享”值。
1.4.还存在许多可对观看对象数据库实施的统计分析任务的其他实例;这些实例并不是为了限制本发明的应用性,而仅是通过实例说明可以执行的操作范围。
2.可以根据所有可用观看对象的一个或多个属性自动生成特性聚类对象。
这种生成过程一般通过首先从每个观看对象提取感兴趣信息(如节目描述、演员、导演等)并构造节目和属性的简单列表来实现。然后,通过选择一个或多个属性生成聚类观看对象,并将所选属性以某种方式匹配的那些节目添加入聚类中。
然后,可能根据地理或其它信息,将这些对象包括在传输切片中。一些可以创建的聚类实例是:
2.1.基于事件的聚类,如大城市中主要的联盟足球赛。在这种情况中,则收集该城市中或附近的可由客户设备观看的所有节目,以及搜索节目描述以获得比赛队名称、教练姓名、主要队员姓名、赛场名称等。匹配的节目对象被添加到聚类,它然后被分为传输切片而仅向该城市及其周边地区的客户设备传送。
2.2.根据大量观众共同关注的人员进行聚合。例如,可以由下周将播出的″John Wayne″的所有电影构造的聚类。
2.3.可以产生根据观看行为的聚类。在这种情况中,对上载观看对象进行扫描以找出共同感兴趣的元素,如观看的节目类型、观看的实际节目等。例如,可以生成上周所有客户设备所观看节目的“十大节目排名”聚类,其包含下周那些节目的播放(showing)。
2.4.基于观众明确选择的聚类。在观看节目期间,观众可以有机会对当前节目进行“投票”,这大概基于4种感觉属性(故事情节、表演、导演、摄影),它可以生成日后上载的观看对象。然后,这些投票结果经扫描以确定节目总的收看率,并将其发送给那些投票人供其仔细观看。
2.5.就本发明的基本设施如何允许业务操作人员向客户设备的用户提供相关节目的预排序和预选择组以供仔细观看和选择方面,还有许多其它的实例。这些实例并不是为了限制本发明的应用性,而仅是通过实例说明可进行的操作范围。
3.手动方法也可以用于生成聚类对象,一种有时被称作“著作”的过程。在这种情况中,创建该聚类的人选择节目以明确地增加入聚类中。然后,它以与前述相同的方式进行传输。
很明显,聚类节目对象也可以允许表示优先权或其它信息的记录。这些结果可以被上载到中央站点以形成下一轮聚类生成或统计分析等的基础。
这种反馈环形成了服务提供商与使用客户设备的广大观众之间的闭合环路。通过提供独特的和有力的方法,这种具有创造性和新颖性的方法实现了一种新的观看电视的方式,从而业务提供商可以向个人提供和宣传感兴趣的电视节目,同时保持业务可靠且一致地操作。
电子内容——所有权、商务、以及保护
很大程度上,版权法是针对物理分发其上印制或以某种方式表示版权保护材料的物体。最终用户通过购买该材料的副本而被授权使用该材料。通常认为电子内容的分发将以相类方式操作。
不幸的是,这种想法存在严重的问题。内容的电子复制实际上可以自由进行而阻止这种复制非常困难。而复制到如本发明的系统的一个闭合系统的吸引人之处就在于:它可以极大程度地控制这种复制。然而,它也会产生这样的基本问题:如果客户系统以某种方法被损坏会发生什么事件?那时,用户会被拒绝合理使用他已付过费的内容。同样,不同于可能销售给别人的物理对象,用户也失去了进行这种内容补充交易的机会。
公平原理表明:购买者应该在任何可播放或显示该内容的个人设备中可以使用这种数字内容。向用户提供一种这样做的方式似乎是重要的。
上述分布式电视观看管理系统是一种端到端系统体系结构和保密分布管理系统,它可以解决现有电子分发系统的许多缺点;这些缺点中的若干缺点是:
·现有的电子分发系统不是自动的,因此需要直接交互以将内容导入系统或从该系统检索内容。
·现有电子分布系统是不可靠的,即长时间下载可能会失败,无法实现数据完整性等。
·现有电子分布系统不安全——一般不包括认证方法或数据安全方式。
·在系统中很难实现被保护内容的版权限制。
·也没有支持被保护内容的销售或交易的付费或交易系统。
再次参照图1,本发明可提供经认证的可靠的内容下载与跟踪能力。如上面所指出的那样,观看对象通过通信介质从分布服务器110传输到客户系统101,如:典型的广播传输方式(卫星、电缆、无线)以及直接连接或通过互联网或内联网(电话调制解调器、以太网、ISDN、DSL、电缆等)连接的基于连接的传送方法。
当使用分发服务器110与客户系统101之间的网络连接时,可以通过宽带网络如同通过广播介质一样提供同样的系统能力。客户系统包括:机顶盒;计算机;或包括存储设备的手持设备,如数字视频录像机(DVR)。
本发明的体系结构提供管理电子分发的数字内容的系统。本发明满足了版权所有人为其付出的劳动获得合理补偿的需要和合理使用的要求,同时提供新的产生税收的机会。本发明也推动了基于数字内容的电子分发管理商务的商业方法。
电视观看对象可以包括大量不同类型的数据。例如,如上所述,软件观看对象包括具有新应用程序或现有软件更新的软件。电视观看对象也可以包括其它电子内容,如认为是受版权保护的材料的电子内容(如照片、视频、音乐、电子图书等)。电视观看对象也可以包括指向数字内容的“指针”,如面向Web的URL。然后,客户设备使用这些指针以分别获得该数字内容。
参照图11,通过本发明的体系结构可以向用户分发例如音乐的内容。用户通过客户系统1104的界面或经网络站点1105注册购买歌曲。通过客户系统或经网络站点,可供使用的歌曲清单显示给用户。本发明的中央服务器1102将购买歌曲记入许可证数据库1106中。购买行为可以直接通过到电话服务器1102的互联网连接进行,或当客户系统1104通过电话服务器1102联系服务时,通过反向传送的日志(即当从客户系统收集观看对象时)进行。购买交易从本发明的中央服务器1102被传输到提供票据交换能力的后端交易服务器1101。
歌曲的电子拷贝可能已经驻留在客户系统1104中的某一隐藏区域、在受保护的广播信道1103中传递、在准备以切片形式发送的中央数据库1102中、或驻留在互联网上的安全服务器1107上。如果使用受保护的广播信道1103,内容的切片则被复制到与电台电视发射机在一块的设备上,在那里它被调制到广播信号上。在这些以及相类似的面向广播的情况中,切片被“轮播”,即描述切片的数据一直进行重复,直到有新的切片提供传输。这对于向最终用户提供可靠下载很有必要。
参照图12所示,一旦歌曲驻留在客户系统1104且(例如)在特定音乐播放清单1201中可供利用,它就被“发送”给用户。该用户通过客户系统的用户界面访问内容。利用遥控或键盘通过简化的用户界面,客户系统使得可以容易地运用本发明。用户可以根据需要从其客户系统自由播放经许可的内容,并控制它的播放方式(例如,暂停、快进、倒转等)。
这种交易的购买行为是为了取得歌曲的许可权,而不是内容本身。本发明的操作人员可以收取购买价格的一小部分作为处理交易的费用。典型地,本发明的操作员不承担分发的费用;用户通过电视订购或互联网访问服务承担该费用。
由于所有许可证均受到跟踪,如果客户系统失败,本发明的服务可以验证哪些歌曲从许可证数据库中被发放了许可证,这样用户就能够将其许可歌曲的新拷贝恢复(retrieve)到其新的客户系统上。这种过程可以手动完成或者可以作为本发明服务的一个自动特性完成。以同样的方式,客户系统也可以校验客户系统上是否驻留有正确的内容,并根据需要删除或增加内容。
现在,许可证就代表一种有价商品。这样就创建了一个“歌曲市场”。本发明的服务提供了类似于股票交易的交换能力,借此所有者拿出各种歌曲的许可证进行销售。这种服务可以收取一小笔交易费,或某个其它报酬。
参照图13所示,卖方1303可以在中央服务器1301上出售歌曲的许可证。用户通过其客户系统或经网络站点可以看到出售的许可证清单。对卖方1303的歌曲许可证感兴趣的买主1304可以对其出价。出价可以通过卖方和买方各自的客户系统或通过网络站点进行。当价格谈妥时,本发明的中央服务器1301将许可证数据库1302中许可证所有权传输给新的所有者,并可选地向后端交易服务器1305通知此项交易。中央服务器1301指示卖方的客户系统1303删除该内容。删除指示的发生可以通过互联网连接,作为在客户系统1303周期性的对本发明服务的回调期间的一个命令,或可以作为通过广播介质(如卫星)发送的一个事件。如上所述,买方的客户系统1304可收到歌曲的拷贝,但也许在确定卖方的拷贝已被删除后,以避免出现非法拷贝的可能性。
参照图14,本发明允许歌曲发行者1401(内容的始发出者)在市场上对新内容向客户系统1405出价,这非常像是股票的出价。如上所述,用户通过其客户系统1405或网络站点1406购买新内容。中央服务器1402将购买交易传输到提供票据交换能力的后端交易服务器1407。中央服务器1402将购买行为登入到许可证数据库1403。
需要和贪心会确定向市场提供的拷贝数量。可以想象得到:早期存取一个艺术家限量新歌的费用会很高。发行者可以通过简单地全部买进低价拷贝的方式来提高歌曲的价值,这与公司回购其股票非常类似。
本领域的专业人员将很容易地意识到:虽然提到的全是歌曲,但利用本发明可以管理任何其它的电子内容,如视频、电子图书、图片等。
支持合理使用
参照图15,可以将本发明的客户系统1503想象为一种所有者的媒体资产的“主基地”。如果该所有者希望在其便携式MP3播放器1504上取得歌曲的拷贝,他可以有多种方法。然而,他首先需要向本发明的服务器1501注册MP 3播放器1504的所有权,很像他注册客户系统1503一样。
假设使用针对每个用户设备1504的某种形式的安全认证能力。可以容易地想象得到本发明是如何工作的:所有者在设备1504上申请歌曲的拷贝;本发明的服务器1501检验该设备1504是否向所有者进行过注册并利用许可证数据库1502检验他是否具有该歌曲的许可证。一旦该信息得到确认,本发明的服务器1501便使设备1504从安全服务器1505上获得该歌曲,很可能通过下载来获得。
作为选择,这种校验可以利用所有者客户系统1503中软件提供的认证在所有者的家中进行,并由所有者客户系统1503向设备1504提供下载。在此类系统中,在进行任何下载前,必须由本发明的服务器向客户系统和设备通知另一方的真实性。
所有者可以拥有一个以上的客户系统1503、1506。该所有者将其客户系统向本发明的服务器1501注册。服务器1501向每个客户系统1503、1506提供所有者拥有的其它客户系统的验证信息。这样,客户系统1503、1506无需服务器1501就可以相互认证。
当所有者希望将内容从一个客户系统1503传送到另一个客户系统1506时,他仅仅需要在客户系统1503、1506之一上启动发送过程。使用服务器1501给出的验证信息,客户系统1503、1506就可以相互认证,然后在它们之间拷贝内容。很明显,所有者可以具有许多注册到服务器1501的客户系统。所有者可以在所选的客户系统或所有其客户系统之间传送内容。这种方法使所有者可以在其住所的多个房间或在不同的住所播放内容。
虽然本发明参照优选实施例进行了描述,但本领域的专业人士很容易意识到:可以由其它应用程序替代本文所陈述的应用程序,而不背离本发明精神和范围。因此,本发明仅由所附的权利要求书限定。