节目指南系统的制作方法

文档序号:7881861阅读:226来源:国知局
专利名称:节目指南系统的制作方法
技术领域
本发明涉及通信系统和方法。具体来说,本发明涉及用于为广播通信网络提供节目指南的系统和方法。
背景技术
在诸如DIRECTV拥有和运营的Direct to Home(DTH)直接广播卫星之类的某些广播通信网络中,DIRECTV直接为遍及美国大陆和海外的家庭和企业安装的卫星小天线提供了对许多流行电视网络、电影、体育和娱乐频道的访问。DIRECTV使用直接向五个卫星传输数字压缩的节目的广播中心。位于距离地球22,300英里之外的五个卫星直接向微型碟形卫星天线播送节目和信息。卫星信号被接收单元接收并向电视观众显示。
在这样的系统中,在多个频道上为电视观众呈现了许多节目。为帮助电视观众选择节目,通常使用节目指南。节目指南是节目的一览表,包括节目的描述,提供该节目的频道和播送该节目的时间。通过包括详细的节目说明的节目指南可以实现许多附加功能,例如,父母控制和按次计费功能。
节目指南需要有最小的内存要求才能进行交互操作和起作用。对于某些国际市场,节目指南必须以多种语言提供节目选项。此外,创建自定义指南以在不同的市场和接收器内提供不同的节目选择的能力也是非常理想的。
尽管常规的节目指南提供了多语言支持和多个指南的能力,但是,已经发现常规节目指南在可以为现在和将来的市场机会提供的多个指南的数量方面存在局限性。在常规节目指南生成系统中提供分指南要求重新编写节目指南软件。新指南不能轻松地动态地生成。
此外,常规的节目指南在可以容纳的频道数量方面也存在局限性,因为频道指南信息存储在系统的存储器结构中,而不是存储在数据库本身中。
相应地,需要一种系统和方法,用于为小型的卫星及其他广播系统生成节目指南,提供多个多语言的指南,而不需要进行其他开发,并且在可以容纳的频道数量方面没有限制。

发明内容
本发明的系统和方法可以满足这种需要。本发明提供了一种用于根据节目表为一个或多个市场在通过电信分布网络在市场上分发的节目内容方面生成和修改多个独特的节目指南的系统。该系统包括调度引擎,用于为第一市场提供第一节目指南,为第二市场提供第二节目指南。提供了用户界面,用于输入第一或第二节目指南的更新方面的数据。然后,指南工厂响应用户提供的输入数据自动更新或修改第一节目指南、第二节目指南、系统的参数,和/或系统的配置。上行链路驱动设备周期性地向上行链路系统传输节目指南,上行链路系统向接收器提供指南。
在说明性的应用中,本发明的系统与直接广播卫星电信网络结合使用。根据本发明,第一和/或第二节目指南可以轻松地分开,而无需重新编码或重新编程。包括了Web服务器以便从各种远程位置进行更改。


图1是显示根据本发明的原理的用于提供节目指南的系统的网络体系结构的说明性的实施例的方框图。
图2是显示根据本发明的原理的用于提供节目指南的系统的软件组件的说明性的实施例的方框图。
图3是显示根据本发明的原理的用于提供节目指南的系统的软件体系结构的说明性的实施例的方框图。
图4是说明根据本发明的原理的的说明性的实施例的用于实现指南工厂的配置更改的方法的流程图。
图5是说明根据本发明的原理的用于实现指南数据内容更改的方法的流程图。
图6是比较详细地说明向通常如图5所说明的其他IPGS服务器复制事件和频道数据对象的流程图。
图7是说明在许多指南工厂之间进行通信的简化方框图。
图8是显示根据本发明的原理的指南路由信息的组织的图表。
图9是说明根据本发明的原理的调度数据的结构的图表。
具体实施例方式
现在将参考附图描述说明性的实施例和示范性应用,以说明本发明的原理。
尽管这里参考用于特定应用场合的说明性的实施例描述本发明,应该理解,本发明不仅限制此。精通本技术并了解这里所提供的原理的普通人员将认识到,在本发明的范围和本发明将有重要应用的其他领域,可以进行其他修改、应用和实施。
图1是显示根据本发明的原理的用于提供节目指南的系统的网络体系结构的说明性的实施例的方框图。在说明性的应用中,网络10是为用于国际节目指南系统(IPGS)中使用而建立的。在图1中,分别显示了第一和第二广播中心20和30。根据本发明,第一广播中 20包括用户界面22,该用户界面连接到调度引擎24。调度引擎24向IPGS服务器26和28提供频道和事件信息。如下面比较全面地讨论的,IPGS服务器生成大量的节目指南信息。IPGS服务器通过Web服务器29被用户界面22访问。正如那些精通本技术的人所理解的,调度引擎24、IPGS服务器26和28以及Web服务器29可以用单计算机(或服务器)来实现,也可以用多计算机系统来实现。如果使用多系统,如图1所说明的,广播中心20内的系统可以通过局域网25进行连接。
为了提供冗余,第一广播中心20可以通过诸如T1连接12或TCN连接40之类的合适的链路连接到其他的广播中心30、60、70、80和90。至少一个广播中心(在图1中,第二广播中心30)包括许多上行链路驱动设备35-38。每一个站点60、70、80和90都配备有冗余的上行链路驱动设备62/64、72/74、82/84和92/94。如下面比较全面地讨论的,上行链路驱动设备将来自指南工厂的节目指南合并成流,并将流传送到卫星天线40。天线40将流向上游传送到一个或多个卫星50(图1只显示了一个)。卫星将节目内容和指南信息传送到各个位置的集成的接收器解码器(IRD)和卫星接收器。
图2是显示根据本发明的原理的用于提供节目指南的系统的软件组件的说明性的实施例的方框图。如图2所示,系统包括用户界面123。用户界面123包括系统参数用户界面125、配置用户界面127、输入数据用户界面129以及监视用户界面131。系统参数界面125提供关于图1的整个系统10的配置参数。配置用户界面127、输入数据用户界面129和监视用户界面131分别在配置组件131、输入数据组件133和监视组件135之间传送用户信息。输入数据组件133从图1的调度引擎24或34以及从输入数据用户界面129接收信息。健康状况被配置组件131、输入数据组件133、指南工厂组件137和上行链路驱动设备组件139发送到监视组件。配置组件131向输入数据组件133、指南工厂组件137和上行链路驱动设备组件139提供配置数据。上行链路驱动设备组件向未显示的上行链路信号处理系统(USPS)输出信息。USPS将各个流的音频和视频输入复合为单一流,该单一的流再被以常规方式发送到天线40,并向上游传送到卫星50(参见图1)。在最佳模式下,卫星根据DTP(DIRECTV传输协议)进行操作。卫星50通过未显示的集成的接收器解码器(IRD)根据最终用户的帐户设置将信号中继到最终用户。
图3是显示根据本发明的原理的用于提供节目指南的系统的软件体系结构100的说明性的实施例的方框图。软件被设计为在图1的网络体系结构10中描述的机器上运行。如图1所说明的,几个不同的组件合并,以使网络10根据本发明的原理运行。在说明性的实施例中,这些组件包括指南工厂102、上行链路驱动设备104、数据库107、输入数据组件(IDC)106、监视组件108、通信网桥110、图形用户界面(GUI)112、名称服务114、116和118、事件服务120、Web服务器33和Web浏览器(未显示)。在图3中,配置数据流以蓝色显示,频道和节目数据流以红色显示,组件健康状况信息流以黄色显示。
如下面比较全面地讨论的,指南工厂(GF)软件102生成指南信息块,并将它们分发到上行链路驱动设备。上行链路驱动设备(UD)104将活动指南信息块合并成格式化的流,并周期性地将这些流传输到配置的USPS(未显示)。数据库(DB)107维护了一个系统配置和用于生成指南信息块的调度信息的永久存储区。输入数据组件(IDC)106从外部源接收新配置和调度数据,对其进行验证,并将信息传播到系统的其余部分。监视组件(MC)108跟踪其他系统组件的健康状况,并将此信息传送到任何相关的侦听者。通信网桥(CB)110将图形用户界面(GUI)112连接到系统的其余部分。用户界面(UI)22(图1)将状态信息传送到用户,并可使用户配置系统。名称服务(NS)114、116和118维扩了存在于IPGS中的组件实例的永久副本,并能使其他IPGS组件查找它们。事件服务(ES)120将无目标的消息转发到相关的侦听者。Web服务器(WS)33使希望运行界面的任何人可以使用GUI。Web浏览器(WB)(未显示)显示用户界面。
有几个组件驻留在IPGS服务器137上输入数据组件106、IPGS数据库107、事件服务120和指南工厂组件102。这些组件中的每一个组件都具有不同的职责。
输入数据组件输入数据组件106从包括用户界面在内的外部系统接收输入。它负责鉴定输入的来源并验证内容。一旦批准了输入,输入组件就将信息存储在本地数据库中,通知相关的组件,并发出描述信息的事件。通常向信息的始发者发送一个响应,并指出信息是否被接受以及原因。在正常操作期间,只有一个输入组件接收数据。
数据库IPGS数据库107维护了配置和调度信息的永久副本。此信息用于在首次启动指南工厂时填充指南工厂的数据缓存。它还用于保存创建指南当前不需要的信息。这可能包括当前没有调度的节目或将来将发生的事件。当需要它们时,指南工厂负责查找这些项目。数据库负责将输入组件输入的数据复制到IPGS服务器上的所有其他数据库。由其他本地IPGS组件发出的错误和状态事件存储在数据库中,而不是进行复制。
事件服务事件服务120由几个频道构成,通过这些频道可以路由事件。通过事件服务,IPGS的每一个组件都可以发出事件,然后,将事件传递给对这些事件表现出兴趣的所有其他组件。事件服务组件是将可伸缩性和灵活性引入到设计中的便利方法。可以改变机器的数量和位置,而不必修改编码或者甚至重新配置现有的机器即可与它们进行通信。还可以添加其他的客户端,以基于这些事件执行新的功能,而不会影响现有的组件。
指南工厂指南工厂组件102获取配置和调度信息,并产生指南信息块,然后将指南信息块分发到上行链路驱动设备,以便进行广播。根据本发明的原理,指南工厂被设计成履行下列职责·处理新配置和调度信息的事件·维护与生成特定环境的指南相关的信息的本地缓存·为特定指南环境生成指南信息块·当对于特定环境为主要时,将指南信息块分发到上行链路驱动设备·发出心跳事件,以显示指南工厂仍在正常地操作·发出初始化和结束事件·监视其他指南工厂的心跳、初始化和结束事件,以配置冗余层次结构·在指南生成和分发期间,发出状态/警告/错误事件尽管IPGS组件可以以许多不同的方式分配给机器,但是,对于生产用途,所建议的配置是将组件分配给三种类型的机器。表1列出了根据说明性的实施例的三种机器以及在它们上运行的组件。
表1IPGS机器和组件

IPGS机器可以部署在几个不同的站点。例如,可以在一个广播中心放置两个IPGS服务器和一个IPGS工作站。为了提高系统可靠性,可以在另一个广播中心提供另外两个IPGS服务器和另一个IPGS工作站。
广播中心至少具有两个上行链路驱动设备。在广播中心可能需要更多的驱动设备,以便支持许多发送应答器。Web浏览器通常在所有IPGS工作站上运行,虽然一个可能在与IPGS工作站相连接的任何机器上运行。
对于其他机器配置,对于如何分配组件有一些约束。在每一台IPGS机器上都必须运行名称服务。具有指南工厂的任何机器都还必须具有一个数据库。监视组件、通信网桥、用户界面和Web服务器都必须驻留在同一台机器上。
图4-6是显示了本发明的方法的说明性的实施例的流程图。在最佳模式下,以软件实现图4-6中所描述的方法。图4是说明根据本发明原理的说明性的实施例的用于实现指南工厂的配置更改的方法的流程图。为此,“配置更改”包括指南环境、USPS参数、上行链路驱动设备参数、指南路由表和全面的IPGS系统参数。在图4中,从开始202,在步骤204,输入数据组件106(图3)等待从图形用户界面112接收新的配置数据对象。在从图形用户界面112接收到数据对象之时,输入数据组件106在步骤206-210验证每一个对象,并在步骤212将对象存储在数据库107中。如果对象是无效的,或在将对象存储在数据库中时产生错误,则在步骤214中,创建一个答复对象,带有错误的描述,并将错误添加到答复列表并记录到数据库中。在成功存储对象之后,在步骤216,创建答复对象,并添加答复列表。如果在步骤218中处理了所有对象,那么,在步骤220中,将答复列表发送到发送者,并带有成功和错误信息。如此,在步骤222中,已经接收配置更改数据,并存储在数据库中。在步骤224中,将接收到的对象复制到其他指南工厂。如果在步骤226中,配置更改数据对象涉及本地指南工厂,输入数据组件通知指南工厂组件102,以获得步骤230中的配置更改。在步骤232中,指南工厂从输入数据组件请求更改,并在步骤234中,输入数据组件向指南工厂发送新配置对象。在步骤236中,指南工厂处理新的配置对象,在步骤238和240,判断新的指南流是否需要通过检查配置更改来创建。如果新配置定义新的指南流,或改变现有的指南流的内容,在步骤242,指南工厂为这些指南流生成包括新的数据对象信息块,并将信息块发送到一个或多个上行链路驱动设备。指南工厂使用路由信息(稍后将讨论),以判断应该将信息块发送到哪个上行链路驱动设备。在步骤244,上行链路驱动设备将指南流发送到上行链路系统(未显示)。在步骤246,上行链路系统将指南流通过图1的卫星50发送到消费者集成的接收器解码器(机顶盒)。在步骤248,消费者的机顶盒下载指南流,因此,在步骤250,消费者具有更新的和当前的节目指南。如果在步骤240中判断不需要创建新的指南流,则在步骤241中组件完成对配置更改的处理。
如果在步骤226和228中,判断配置更改影响上行链路驱动设备,则在步骤252中,输入数据组件向上行链路驱动设备通知有关更改的情况。在步骤254中,上行链路驱动设备从输入数据组件请求新的配置数据,并在步骤256更新其路由表。在步骤258中,上行链路驱动设备从指南工厂请求指南信息块,并在步骤244中,上行链路驱动设备通过上行链路系统(未显示)向消费者发送指南流。如果在步骤228中判断配置更改不会影响上行链路驱动设备,那么,在步骤229中,组件完成对配置更改的处理。
图5是说明根据本发明的原理的用于实现指南数据内容更改的方法的流程图。图5的图表类似于图4的图表,只是在图5中更改没有发送给上行链路驱动设备。图5显示,在步骤304中,输入数据组件106等待接收新的事件和频道数据对象。在接收到这些对象之时,输入数据组件对对象进行验证,并将它们存储在数据库中,并将它们发送给指南工厂,以便以上面的图4中说明的方式传送给消费者。请注意,在步骤324中,输入数据组件将接收到的对象复制到其他指南工厂。
图6是比较详细地说明向通常如图5所说明的其他指南工厂复制事件和频道数据对象的流程图。图6的流程图中所描述的方法允许数据以在使用的服务器或其他机器的数量方面对于系统管理员来说是透明的方式复制到系统中的其他机器。在图6中,所有输入数据都要由接收输入数据的组件验证,然后才能将其存储在其本地数据库中。(在此上下文中,“本地”是指驻留在同一台机器上。输入数据组件、指南工厂和数据库驻留在在同一台机器中,因此,它们彼此之间都是本地的)。然后,它强制数据库同步。当同步完成时,它通知其他输入数据组件,以读取它们的本地数据库,然后将数据发送到受影响的本地组件。如果受影响的组件不是本地的,例如,上行链路驱动设备,那么,只有接收输入数据的组件才向该组件发送数据。
如此,在步骤326中,在接收到节目表或配置数据中的更改之时,如上文所讨论的并在步骤328中通常所说明的,输入数据组件将其数据存储在其数据库中。如果存储步骤成功,则在步骤334中,输入数据组件创建所有受更改的影响的活动设备的一个列表。在步骤336中,配置更改被发送给上行链路驱动设备和受影响的活动设备。在步骤338中,输入数据组件创建所有活动数据库实例的一个列表,并在步骤340中,输入数据组件创建一个单独的线程,以将数据推入到如此标识的每一个数据库。对于每一个线程,在步骤344中,它通知每一个活动数据库所在的机器上的输入数据组件,以从本地数据库读取数据,并将它发送到诸如本地指南工厂之类的所有受的本地组件。
图7是说明在许多指南工厂137之间进行通信的简化方框图。每一个输入数据组件(IDC)106都是直接与关联的数据库107进行通信的唯一的组件。四个输入数据组件106、106′、106″和106可以彼此进行通信,并向彼此发送通知,但不能访问彼此的数据库。在说明性的实施例中,数据库是使用异步复制来进行同步的。数据库被设置为本身每隔几分钟进行同步。然而,当IDC接收数据时,它更新其数据库副本,并强制数据库与其他三个数据库同步,即,数据库启动对其他三个数据库的更新。在同步失败的情况下(例如,机器停机),那么它就保存需要发送到停机的数据库的数据,每当该数据库启动时,都发送该数据。根据本发明的原理,数据库彼此进行同步,无需用户干涉。IDC之外的每个组件都通过IDC与数据库进行通信。所有组件都通过IDC请求数据并向数据库提交数据。在发生错误的情况下,IDC将错误返回到调用组件。
IPGS可以具有每一个组件的多个实例,以提供冗余和负载平衡能力。下面将把组件实例叫做设备。每一个设备都可以由其类型和它所在的机器的主机名标识。一些设备类型是指南工厂、输入数据组件、事件服务、上行链路驱动设备、监视组件以及通信网桥。由于此标识方法,每一个组件类型的唯一的一个设备可以在单台机器上运行。IPGS组件的多个实例一次可以在单台机器上运行;然而,每一个实例都必须是设备的完全不同的系统的一部分。
IPGS设备之间的通信是通过CORBA进行的。每一台组件的界面和消息都是以CORBA IDL进行定义的。设备ID包括在消息参数中,以标识每一个消息的始发者。
通过向联合名称服务注册新设备来将新设备添加到系统中。这就通知所有其他活动的IPGS机器,在给定机器上,新设备将可用。每一个IPGS机器都维护每一个设备的永久位置(即,主机名)集。可以通过从名称服务注销设备来将其从系统中永久删除。注册通常只有在新机器添加到系统的情况下才进行。
每当设备启动时,都执行几个操作。设备在设备的机器上运行的名称服务中列出了对其本身的一个或多个引用。其他设备可以通过它们的本地名称服务查找这些绑定(因此,可以查到对正在启动的设备的引用)。设备还发布初始化事件,宣布它已经启动。这可以在新设备启动时警告其他设备,而不是强制它们轮询新的设备。
当停止设备时执行类似的操作。发出结束事件,通知其他相关的设备,设备正在停止。对正在停止的设备的引用将从名称服务中删除。名称服务仍指出,设备驻留在该机器上,但它没有有关与该设备联系的具体信息。设备不应该尝试与未运行的设备进行联系。
并非所有的组件都需要遵循这些原则。例如,Web服务器或名称服务都不执行这些操作中的任何操作。对于这些组件,也不需要注册。
为确保IPGS的稳定性,可以部署IPGS服务器的冗余实例。对于每一个服务器组件,冗余是以不同的方式管理的。
所有输入组件都是活动的,并能够接收输入;然而,只有一个输入组件被视为主要的。所有外部系统(例如,GUI和PADB)都应该连接到主要输入组件。如果不能与主要输入组件建立连接,则选择一个新的主要输入组件。所有外部系统都应该遵循用于判断新的主要输入组件的同一个算法。这将确保,在IPGS中正好有一个数据的入口点,这将最大限度地降低发生竞争情况的可能性。不需要有用于将备份输入组件提升到主要输入组件的内部机制,因为是外部系统控制与哪个实例进行联系。
输入组件和指南工厂将直接只与驻留在同一台机器本地的数据库进行通信。数据库负责及时地将配置和调度数据复制到其他IPGS服务器上的数据库。由于输入可以由任何IPGS服务器接收到,因此,复制是对称的。然而,在正常情况下,复制数据只能在具有主要输入组件的机器上产生。除配置之外,复制可以完全由Oracle软件进行管理。
事件服务的冗余是透明的。对接收事件感兴趣的任何应用程序都应该向所有可用的事件服务进行注册。当发出事件时,应用程序只须向一个事件服务发送事件。这要求,当新事件服务可用时,事件消费者通过事件得到警告。还可以采用本地事件频道,以支持与事件频道所在的IPGS服务器机器的外部组件无关的事件。
指南工厂的冗余是完全可以从用户界面进行配置的。对于每一个指南环境,只有一个指南工厂被视为主要的。此指南工厂负责向每一个需要该环境的指南信息块的上行链路驱动设备提供它们。其他指南工厂还可以通过生成其指南信息块来支持该指南环境。然而,这些辅助指南工厂将不会向驱动设备传输任何指南信息块,除非主要工厂未能这样做。
由于在主要指南工厂发生故障时辅助指南工厂必须自动接管,IPGS必须有检测这一情况的方法。为此,每一个指南工厂都将周期性地发出心跳事件,以描述其状态。通过监视这些事件,辅助指南工厂可以判断出主要指南工厂已经发生故障的情况。例如,如果在一个预先确定的间隔内没有从主要指南工厂接收到心跳,辅助指南工厂可以认为,主要指南工厂已经发生故障。或者,心跳可以指出,主要指南工厂已经进入一个状态,从该状态,它不能为相关的指南环境生成或提供指南信息块。
每一个指南工厂都执行各种任务,其中包括·周期性地发出描述工厂的状态和活动的健康事件·侦听所有指南工厂的健康事件·侦听来自输入数据组件的配置信息·侦听来自输入数据组件的新的调度信息的通知·侦听来自驱动设备的指南数据请求·侦听来自其他设备的初始化和结束事件·支持许多已配置的指南环境指南工厂以下列三种模式之一支持指南环境不活动的、活动的,或主要的。由于指南工厂同时可以支持几个环境,因此,它可以在任何时候以一种以上的模式进行操作。
当不活动地支持指南环境时,指南工厂为该环境维护配置信息,但不为该环境执行任何操作,诸如处理节目表项,或生成指南。
指南工厂对指南环境的活动支持增大了指南工厂的职责。指南工厂现在必须·为该环境维护配置信息,·维护当前与指南环境有关的节目表项的缓存,·为指南环境生成指南信息块,
·记录为指南环境执行的活动,·并记录在支持指南环境时遇到的问题。
指南环境的主要支持与活动支持相同,并带有向所需的上行链路驱动设备传输所生成的指南信息块的其他职责。
几个指南工厂可以支持单一指南环境。任意数量的指南工厂可以以活动或不活动的模式支持指南环境。然而,对于每一个指南环境,在任何时候都正好有一个指南工厂以主要模式操作。
对于已配置的指南环境,每一个指南工厂都有一个数字优先级。用户最初指派此优先级,但指南工厂可以在某些情况下降低他们自己的优先级。优先级“0”是指,指南工厂对于该环境是不活动的(否定的优先级被当做零)。正的优先级导致指南工厂对于该环境是活动的。一个指南环境的带有最高优先级的指南工厂是该指南环境的主要指南工厂。使用设备ID的字典式的比较来中断联系。一个指南环境的默认优先级是1。当重新启动指南工厂时,所有指南环境的优先级被重置为此。
指南工厂的健康包括每一个所支持的指南环境的其优先级,以及它是否将其本身视为每一个指南环境的主要的指南工厂。每一个指南工厂都监视其他指南工厂的健康,以便每一个指南工厂知道其他指南工厂在执行什么操作。
指南工厂的自动提升当指南工厂在为单一指南环境提供服务时遇到错误,其对于该指南环境的优先级被降低。这可能会导致指南工厂不再是该指南环境的主要指南工厂。在严重的情况下,这可能会导致指南工厂对于该指南环境来说变得不活动。当在指南工厂中发生了较大的问题(例如,与本地数据库或名称服务连接失败时,所有受支持的指南环境的优先级都可能会降低。当指南工厂被关闭时,所有其优先级都被置零。其他指南工厂都会在接收到指南工厂的结束事件时自动进行这一调整。
当指南工厂检测到所有其他指南工厂都具有对于一个给定指南环境的较低的优先级时,该指南工厂将其本身提升为该指南环境的主要指南工厂。这通常在指南工厂接收到来自以前是该指南环境的主要指南工厂的指南工厂的健康或结束事件时发生。在变成主要指南工厂时,指南工厂向相关的驱动设备传输为指南环境生成的每一个信息块。
当一个指南工厂未能在预先确定的时间量内接收到来自另一个主要指南工厂的健康事件时,它推断指南工厂已经失败,并降低该指南工厂的优先级。不进行进一步的检查。
当预先确定的时间量过去而没有接收来自指南工厂的健康事件时,其他指南工厂尝试直接请求其健康状况。如果成功地获取健康状况,可能是事件服务发生了问题。如果这还不能解决,没有发出其健康事件的指南工厂的所有优先级都将降低。
这可能导致其他指南工厂变成主要的。
如果相关的指南工厂不可直接访问,则其他指南工厂尝试与该机器上的名称服务进行联系。如果可以联系上,则认为相关的指南工厂已经发生故障。其他指南工厂将它们的发生故障的指南工厂的优先级的副本重置为“0”。对于某些环境,这可能将新指南工厂提升为主要模式。如果名称服务没有响应,则还可以对指南工厂的机器执行ping命令。
如果无法与指南工厂所运行的机器进行联系,则可能有两种可能性。要么机器已经关闭,要么网络连接中断。发现另一个指南工厂的沉默的指南工厂尝试与沉默的指南工厂在同一个子网上的另一台机器进行联系。如果联系上,则认为沉默的指南工厂不再起作用,其优先级降低为零。
如果不能与该子网上的任何机器联系上,则认为存在网络问题。不能对指南工厂优先级进行自动变更,但向用户界面(当然,可能不可访问)发送一个错误状态。如果在此状态下接收指南工厂请求,如果一个指南工厂在响应指南工厂中处于下一个,则该指南工厂可能变成主要的指南工厂。
由于每一个指南工厂都保存了所有其他指南工厂的优先级的本地副本,则存在不一致的可能性。当指南工厂不在运行时,其真正的优先级都被置零。当指南工厂正在运行时,其真正的优先级是本地存储在该指南工厂内的优先级。这些优先级包含在发送到其他指南工厂的健康事件内。指南工厂应该接受在这些事件中接收到的优先级作为准确的,当接收到健康事件时,应该丢弃对该指南工厂的优先级的任何本地变更。这可能导致接收指南工厂对于某些指南环境从主要指南工厂从主要切换到活动。
如果指南工厂A判断,指南工厂B是一个指南环境的主要指南工厂,而此时它不应该是主要指南工厂时,A可能直接向B发送其对IPGS中的指南工厂的状态的了解的情况。这应该导致B校正其模式。当应该是一个指南环境的主要指南工厂的指南工厂不将其本身视为主要指南工厂时,也可以采取类似的操作。在某些情况下,指南工厂B可能具有有关其他指南工厂的状态的更准确的信息。在此情况下,B可能以其对IPGS中的指南工厂的状态的了解的情况响应A。
每当发生自动提升或降级时,用户界面都会指出。当不能正确地自动判断一个环境的主要指南工厂时,应该发出一个严重警告。
一旦IPGS检测到,一个指南环境的主要指南工厂发生故障,则只须提升一个辅助指南工厂。除选择主要指南工厂之外,有特权的用户可以通过给每一个工厂指派一个对于该指南环境的不同的优先级来选择将提升辅助指南工厂的顺序。此顺序对于每一个指南环境都可以不同。一旦检测到主要指南工厂发生故障,则辅助指南工厂将探测其他指南工厂(包括主要指南工厂在内),以判断哪个健康的指南工厂的优先级最高。此工厂变成相关的指南环境的主要指南工厂,以前的主要指南工厂的优先级降低。有特权的用户始终可以通过修改指南工厂优先级或通过停止包含主要指南工厂的IPGS服务器来影响哪些指南工厂是主要的。
事件服务事件服务用于将消息从一个设备路由到对该消息类型感兴趣的许多其他设备。IPGS中可以存在事件服务的多个实例。每一个事件服务都具有多个不同的频道。为每一个频道(以IDL)定义了一个界面。此界面指定了在该频道上发出的一组事件。在本地名称服务中列出了每一个频道的引用。可以通过一个频道发送多种不同类型的消息,但它们都必须属于同一个界面。
希望发出事件的设备可以向该界面的任何现有的频道发送消息。侦听事件的设备必须连接到该界面的所有现有的频道。这要求,当启动事件频道时,通知所有侦听设备,以便它们可以连接到新的频道。
当启动事件服务时,它为每一个事件界面创建一个事件频道,并在本地名称服务中列出对每一个频道的引用。然后,通过已经在运行的事件服务的DeviceCollector频道发送事件。这就通知所有侦听设备,新事件服务已经启动,它们必须连接到新频道。当事件服务被利索地关闭时,它自动地向所有连接的设备发送断开连接消息。这就允许侦听者(和供应者)清理它们的资源。
由于其他组件需要事件服务了解何时新设备被添加到系统中,事件服务应该是在IPGS中启动的第一批设备之一(在其本地名称服务之后)。为取得最大的可靠性,侦听者可以定期搜索他们不能与其连接的事件服务的名称服务。
表2列出了在本发明的说明性的实施例中的驱动设备和指南工厂所使用的事件频道。其他组件可能需要更多的频道,或用于向远程进程传送错误信息。
表2事件类型

ChunkServer此接口允许驱动设备请求它希望具有的指南数据,但没有接收到。其唯一的操作是requestChunk(in Deviceld origin,in Driver callback,in GuidestreamId stream,in Date time,in long count)当驱动设备检测到它们没有有效的指南信息块的时间时,它们发出此事件。指南工厂倾听此消息,主要指南工厂通过向Driver引用发送一个newGuideData消息(回调)来响应,该消息中包含在指定的指南流中一个给定的时间处于活动状态的指南信息块。
如果驱动设备没有接收到响应,它将定期重新发送事件。每次发送事件时,都增大计数。随着计数变大,辅助指南工厂开始以确定性的方式响应事件。
DeviceCollector此接口允许服务器跟踪系统的哪些组件正在运行,以及哪些不能。DeviceCollector接口中的操作是deviceStarted(in Deviceld device,in Object admin,in long count)anddeviceStopped(in DeviceId)当IPGS设备启动时,它发出deviceStarted事件,以通知系统的其余部分,它已经启动。当组件期待对此事件的响应(例如,以提供初始配置信息),设备可以定期以增大的计数重新发送,直到接收到响应。这就允许辅助机器在主要机器未能这样做时响应事件。admin引用为正在启动的组件的主要引用的回调对象。通常,这是一个DeviceAdmin对象,但是当设备是一个事件服务时,它是一个TypedEventChannelFactory。
当组件利索地关闭时,发出互补事件deviceStopped。这将通知系统的其余部分,消息不应该再发送到组件,不能与组件联系或收到来自组件的消息不应该被视为错误。
当启动驱动设备时,它必须接收其路由信息、其一般配置参数,以及要广播的指南数据。直到驱动设备接收到驱动设备传输的每一个指南流的setDriverRouting()message、a setParameters()message、setApplicationTimeOffset()message和newGuideData(),它定期发出deviceStarted事件。
当启动指南工厂时,必须向它说明,生成哪些指南,以及要将它们发送到哪里。指南工厂定期发出deviceStarted事件,直到它接收到setParametersO message、该环境的setHierarchy()消息伴随的至少一个defineEnvironment()消息、setApplicationTimeOffsetQ消息以及setFactoryRouting()消息。
当启动事件服务时,侦听事件的任何组件必须连接到相应的新频道。因此,通过不同的事件服务发出deviceStarted事件,指出已经有新事件服务可用。由侦听者负责通过访问所提供的TypedEventChannelFactory来查找并连接到相应的事件频道。
监视组件可以接收这些事件,以便显示何时组件被启动和关闭(以便它可以知道是否有新的事件服务联机)。指南工厂必须接收这些事件,以便它可以在它们被启动时向驱动设备发送信息,以便它可以识别出主要指南工厂何时利索地关闭。IDC可能需要接收这些事件,以便它可以在指南工厂和驱动设备启动时向它们提供配置信息。
DriverMonitorDriverMonitor接口允许远程监视驱动设备的健康。每一个驱动设备都定期发出driverHealth消息,报告其当前健康。此消息包括报告了其健康的驱动设备的标识,测量健康时的实际时间,以及描述健康的结构。此结构由描述驱动设备的一般健康的数字和描述每一个所配置的连接的健康的数字序列构成。为将连接健康状态与连接的描述匹配,还可以包括当前路由配置的标识符。
driverHealth(in Deviceld origin,in Date when,in Health status)每当驱动设备接收到成功地修改驱动设备的路由信息的setDriverRouting()消息时,都会发出newDriverRouting()事件。驱动设备向新配置指派routingId,以便也可以与随后的driverHealth()消息匹配。将信息分为两个消息的目的是为了节省带宽。
newDriverRouting(in Deviceld origin,in long routingId,
in DriverRouting routes)监视组件可能是对接收这些事件感兴趣的唯一组件,它使用这些事件来绘制监视显示。
GuideFactoryMonitorGuideFactoryMonitor接口允许远程监视指南工厂的健康。每一个指南工厂都定期发出factoryHealth消息,报告其当前健康状态。监视组件接收这些事件以生成监视显示,指南工厂接收这些事件,以判断何时需要提升辅助指南工厂。
指南工厂的健康是一个包括描述了指南工厂的一般状态、其与其本地数据库的连接的状态的数字、它未能与其进行连接的驱动设备的列表,以及每一个所配置的指南环境的状态信息。一个指南环境的信息包括该环境的名称、数字状态、指出指南工厂当前正在为此环境执行什么操作的枚举值,指出指南工厂是否为此环境的主要指南工厂的标志,以及此环境的指南工厂的优先级。
factoryHealth(in Deviceid origin,in Date when,in GuideFactoryHealth health)上行链路驱动设备上行链路驱动设备将指南流发送到上行链路系统,以便它们可以传输到卫星。上行链路驱动设备可以打开与不同的上行链路系统的许多TCP连接。上行链路驱动设备是以冗余的对部署的。在任何时候,如果连接失败,那么其他上行链路驱动设备将建立替换连接。因此,在任何给定的时间点,所配置的连接在两个上行链路驱动设备之间是共享的。两个上行链路驱动设备都不执行所有的发送,但驱动设备的组合一起协作,以传输所有所配置的数据。
在每一个指南生成之后,指南工厂只向上行链路驱动设备发送一次指南信息块,而上行链路驱动设备周期性地向USPS发送那些信息块。上行链路驱动设备继续一次又一次地发送同一个信息块,直到该信息块过期。
指南工厂只直接向广播中心中的一个上行链路驱动设备发送指南数据。该上行链路驱动设备负责将数据转发到其他本地上行链路驱动设备。这是因为,广播中心之间的网络连接的带宽低于一个广播中心内的连接的带宽。
配置信息的最重要的片段之一是指南流路由。即,接收器将在哪里查找每一个指南流,以及IPGS如何在那里获得数据。指南流以几个小步骤路由。首先,指南工厂向上行链路驱动设备分发指南信息块。然后,上行链路驱动设备将那些信息块发送到上行链路系统上特定端口。上行链路系统将来自驱动设备的数据与来自其他系统的数据合并,并将它都发送到特定发送应答器,该发送应答器将数据广播到固定的地理区域。然后,知道在哪里查找的接收器可以访问此数据。
在说明性的示例中,可以单独地配置路由的每一个步骤,以提供用于配置路由信息的对用户友好方法。有特权的用户可以指定指南流将在哪些发送应答器和SCID上广播。SCID是服务频道ID,用于将指南流与在发送应答器上广播的其他数据。发送应答器和SCID的合并地址在下面被称为服务频道。它们也可以指定哪些上行链路系统(USPS)支持哪些发送应答器和SCID。上行链路驱动设备和上行链路系统之间的可能的连接也是可配置的。然后,IPGS可以将所有此信息合并,以成功地将路由指南信息块从指南工厂路由到接收器。当在系统中发生更改时,只是该更改可以进入到IPGS中,它还将适应新路由。
路由信息的第一段是将要路由的数据。每一个指南环境都由多个指南流组成。例如,与OpenTV兼容的IRD的指南环境可以具有MPG流,多个SPG流和多个DIP流。现在必须为每一个所配置的流指派一个或多个目的地。
路由信息的第二段是指南流的可用的目的地集。维护了活动的发送应答器的集合。维护了发送应答器的多个属性,如它所属的卫星和广播,其物理传输编号,其传输特征(例如,频率、极性等等)。当有新的发送应答器可用时,有特权的用户可以将其描述添加到发送应答器集合。这将有助于将来的卫星扩展。
一旦表示了指南流和发送应答器,就可以配置每一个指南流的最高级别的路由。每一个指南流都与一个或多个发送应答器/SCID组合关联。每一个关联都表示接收器可以访问该指南流的一个位置。指南流/服务频道关联中还附加了数据速率。这就允许控制流的每一个实例。请注意,与每一个指南流关联的路由是发送应答器和SCID。这就对应于通常控制指南位置的级别。
还必须描述获得到所期望的服务频道(即,发送应答器/SCID组合)的手段。每一个服务频道都与一个或多个上行链路系统上的端口关联。当IPGS需要向特定的服务频道发送指南流时,它应该向与该服务频道关联的每个上行链路系统端口传输流的数据。可以随意地修改上行链路地址和服务频道之间的关联,以反映上行链路系统的配置。系统将通过在内部以与新配置一致的方式重新路由指南流来适应这样的修改。通常,上行链路系统的所有端口都与单一的发送应答器的服务频道关联,SCID和端口号之间的关系通常是恒定的。这反映常规作法,其中,每一个上行链路系统都正好为一个发送应答器提供所有数据。然而,为将来的开发提供了其他的灵活性。
路由的最后一段是在IPGS内部。IPGS必须知道其哪些组件可以访问每一个上行链路系统,因此,它维护了关于其上行链路驱动设备的数据的集合,哪些驱动设备应该向哪些上行链路系统传输。作为一个附加的安全措施,提供了每一个上行链路系统和上行链路驱动设备的位置的简单表示。上行链路驱动设备只能与驻留在站点的上行链路系统进行通信。
一旦主要指南工厂创建指南信息块,它就负责将它提供到需要数据的所有驱动设备。要查找此驱动设备集,工厂识别信息块所属的指南流。从那里,它收集与该指南流关联的每个路由,这就产生一组服务频道。这些服务频道中的每一个服务频道都受一组上行链路系统地址的支持,这些地址中的每一个地址都可以由一个或多个上行链路驱动设备进行访问。指南工厂遵循此链,以产生可以服务于任何指南路由的完整的驱动设备集。然后,将新信息块分发到此集中的每个驱动设备。每次分发信息块时,不必判断此驱动设备集。路由表通常是恒定的,这样,当用户重新配置一个或多个表时,可以查找到指南流目的地集。然后,指南工厂只需记住每一个指南流的上行链路驱动设备集。
图8是显示根据本发明的原理的指南路由信息的组织的图表。对上行链路驱动设备的路由信息的要求与指南工厂的要求不同。每一个上行链路驱动设备都必须知道它将传输哪些指南流,将每一个流发送到哪些上行链路系统地址以及以什么速率。此信息可以以类似的方式根据路由信息确定。驱动设备可以向多个不同的位置发送单一指南流,因此,这里不能忽略副本(指南工厂不管副本)。然后可以对指南流与上行链路驱动设备关系的平化表进行排序,并将相关的行发送到每一个上行链路驱动设备。
调度数据为了给将来的内容提供灵活性,以规范化的方式维护调度数据。节目和频道仍是节目表中的重要对象,但它们的关系已经脱离。
节目是向消费者提供的内容的单元。可以有许多不同种类的节目。如今的指南只包含常规的节目,可以由它们的标题、描述、类别、等级和其它的属性来描述。将来的接收器可以支持新的节目类型,诸如XML程序,可以用URL来描述。
图9是说明根据本发明的原理的调度数据的结构的图表。所有类型的节目的共同特征是可以对它们进行调度。即,可以选择节目可以供电视观众观看的时间。节目与开始和结束时间的关联叫做事件。事件通常不会单独发生。为表示事件的共同组合,每一个事件都属于单一事件集合。事件集合可以对应于电视网的节目(例如,HBO的节目表)也可以是人为的(例如,特殊的体育事件)。在单一的事件集合内,常规节目的事件不能重叠。事件集合独立于节目将如何传输或访问(即,频道)。这就意味着,可以随时对频道进行重新配置,而不必重新提交它们提供的节目。
电视观众频道表示电视观众通过其观看节目的途径。专业化的电视观众频道还包含通过其向电视观众提供节目的机制。与Open-TV兼容的IRD可以只描述DSS频道,但将来的接收器可以允许使用诸如陆地广播之类的其他提供机制。描述如何访问频道所需要的一切都包含在DSS频道内。请注意,电视观众频道有一段它处于活动状态的时间。在此时间之外,电视观众频道将不在指南中。
大多数的电视观众频道都允许电视观众直接调到该频道,并提供在该频道上可以观看到的节目列表。公共频道对象与具有这些特征的每一个电视观众频道关联。公共频道对象提供关于频道的描述性信息,如呼叫信号、描述和包含频道提供的节目的事件集合。公共频道通常独立于频道配置。
节目指南对象电视观众是观看电视的人。电视观众市场是电视观众的集合。
接收器是电视观众用来获取正在广播的数据的设备。此数据包括(但不仅限于)视频和音频流、应用程序和节目表信息。有多种不同类型的接收器(例如,与OpenTV兼容的IRD或电视机所附带的调谐器和天线)。不同类型的接收器具有不同的功能。为此,接收器类型是根据与广播机制的连接来进行定义的。
指南是一组接收器可以访问以获取有关频道、节目及其他配置的信息的数据流。由于可能的节目、语言和接收器功能的多样性,可以向不同的电视观众提供不同的指南。一个指南的主要特征是,它具有什么样的流,如何向接收器广播这些流,以及每一个流中具有什么样的数据。
指南环境描述了指南是面向什么人以及是什么用途。它是由其电视观众市场和其电视观众所共享的接收器类型所定义的。指南工厂可以据此判断什么类型的流将构成指南,填充每一个流的是什么样的数据格式,什么数据与目标电视观众相关。例如,可以使用电视观众市场确定在环境的指南内应该使用的语言。
每一个指南流都由一个或多个叫做信息块的数据块构成。随着时间的流逝,或指南工厂接收到新输入时,这些信息块可以更新,替换或删除。
节目指南对象的示例说明性的实施例支持一个接收器类型-与OpenTV兼容的IRD。尽管有一些不支持并且决不会支持OpenTV应用的IRD,但是所有部署的接收器都可以对根据与OpenTV兼容的规范格式化的指南进行解码。有两个指南环境,通常被称为“东和西”。给每一个接收器指派了这些指南环境中的一个(虽然这不是指南环境概念所需要的)。每一个指南环境都支持具有一个主节目指南(MPG)流、多个特殊节目指南(SPG)流,以及多个描述流的指南。MPG流不断地为IRD提供它的正常运行所需要的最少的信息-频道分配、当前节目,以及如何访问其他指南流。在稳定状态,MPG流由单一的重复信息块构成。MPG信息块实际可以在每次广播时都稍有不同,因为它包括当前时间和在对信息块的预定更改之前剩余的时间。每隔半小时,此信息块都被替换为特别为该半小时时隙构建的新版本。此外,每当指南生成器接收到新数据时,MPG信息块都被替换为反映新数据的新版本。SPG流和描述流的行为类似。
可以定义另一种接收器类型,以便可以描述符合高级节目指南(APG)接口的接收器。然后可以创建一个包含所有具有APO接收器的所有电视观众的新指南环境。此环境的指南将由多种新型的流构成-启动流、频率标识流、以及更新流,和多个转盘流。这些流中的每一个流都将由多个小信息块填充。例如,单独的节目都将有其自己的信息块。尽管预定了节目,其信息块将是其中一个转盘流的一部分。随着节目的广播时间的邻近,节目的信息块将从一个转盘流中删除并添加到另一个流中。当对节目进行修改时(如,提供新标题),将修改节目信息块,但仍是同一个转盘流的一部分。如果没有预定节目的所有实例,其信息块将从所有流中删除。
为说明性的系统提供了来自节目获取数据库(PADB)24的调度信息(频道配置和节目)。从此和一些其他的配置信息,IPGS必须构建填充每一指南流所必须的信息块。对于一些指南环境,可以只根据环境的配置来确定所需要的信息块。对于其他环境,调度信息将影响将创建哪些信息块。不管有哪些频道和节目对电视观众可用,这都适用。要创建的SPG信息块的数量和需要哪些描述流将受到频道配置和在生成时已知的节目的量的影响。然而,对于APG指南环境,每一个已知的节目或频道都需要单独的信息块。
信息块应该尽早地创建,以确保当它们处于活动状态时,甚至在发生一些网络问题的情况下,它们也可用于传输。然而,必须与可用的调度信息保持平衡。可以为将来两个星期创建MPG信息块,但是不太可能有用。用于填充这样的信息块的调度信息可能在MPG的构建和当MPG开始处于活动状态时修改。在跨数据更新和信息块的活动时间段的时间内,输入数据发生一些更改的概率必须与指南工厂和驱动设备之间发生网络故障的概率相当。
当信息块的存在基于调度信息时,一旦IPGS接收到调度信息,创建信息块就有意义。例如,一旦接收到该频道配置的频道记录,就可以构建APG频道对象的信息块。即使频道配置在一段时间内不活动,这种情况也成立,因为信息块的传输是可以调度的。当对频道配置进行修改时,可以构建信息块的新版本,以替换以前的版本。请注意,对于这种类型的信息块,信息块只在对调度信息中的现有的对象进行修改时才重新生成。新数据创建新的信息块,而不修改现有的信息块。
OpenTV-Compatible Guide的信息块必须以不同的方式管理,然而,MPG信息块与一组SPG信息块密切地关联。每当生成这些信息块中的其中一个信息块时,它们都应该生成。特别为单一的半小时时隙构建MPG信息块以及其关联的SPG信息块。如此,每隔半小时就需要每一个信息块的新版本。每当指南环境的配置中发生更改或每当接收到新调度信息时,也可以创建新版本。由于这些信息块与时间相关,任何时候都可以有MPG信息块的多个不同的版本-它们中的每一个都针对不同时隙。新生成的MPG信息块可以添加一个新时隙的新版本,或替换以前生成的时隙的现有版本。
如此,这里是参考特定应用的特定实施例描述本发明的。精通本技术并了解这里所提供的原理的普通人员将认识到,在本发明的范围,可以进行其他修改、应用和实施。
因此,所附的权利要求涵盖在本发明范围内的一切这样的应用、修改和实施例。
权利要求
1.一种用于针对节目内容为一个或多个市场提供和修改多个独特的节目指南的系统(10),所述节目内容是通过电信分布网络在所说的市场上根据节目表分发的,所说的系统的特征在于用于为第一市场提供第一节目指南,为第二市场提供第二节目指南的第一组件(24);用于针对所说的第一或所说的第二节目指南的更新输入数据的第二组件(22);以及用于响应所说的数据自动更新或修改所说的第一节目指南、所说的第二节目指南、所说的系统的参数,和/或所说的系统的配置的第三组件(28)。
2.根据权利要求1所述的系统,其特征在于,所说的电信网络包括卫星(50),用于传输根据DSS传输协议编码的直接广播无线信号。
3.根据权利要求1所述的系统,其特征在于,所说的第一组件(24)包括一个调度引擎。
4.根据权利要求3所述的系统,其特征在于,所说的调度引擎(24)包括一个数据库。
5.根据权利要求1所述的系统,其特征在于,所说的第二组件(22)包括一个用户界面。
6.根据权利要求1所述的系统,其特征在于,所说的第三组件(28)包括一个指南工厂。
7.根据权利要求1所述的系统,进一步包括一个上行链路驱动设备(37)。
8.根据权利要求7所述的系统,进一步包括用于从所说的系统(10)接收独特的节目指南的多个上行链路驱动设备。
全文摘要
公开了一个节目指南系统,用于针对节目内容为一个或多个市场生成和修改多个独特的节目指南,所述节目内容是通过电信分布网络根据节目表分发的。该系统包括调度引擎(24),用于为第一市场提供第一节目指南,为第二市场提供第二节目指南。提供了用户界面(22),用于输入第一或第二节目指南的更新方面的数据。然后,指南工厂(28)响应用户提供的输入数据自动更新或修改第一节目指南、第二节目指南、系统的参数,和/或系统的配置。在说明性的应用中,本发明的系统与直接广播卫星电信网络结合使用。根据本发明,第一和/或第二节目指南可以轻松地分开,而无需重新编码或重新编程。包括了Web服务器(33)以便从各种远程位置进行更改。
文档编号H04L29/06GK1499839SQ20031010436
公开日2004年5月26日 申请日期2003年10月24日 优先权日2002年10月25日
发明者阿图尔·班萨尔, 伊万·C·托马斯, 贾森·R·杰森, 约瑟·D·索托, C 托马斯, D 索托, R 杰森, 阿图尔 班萨尔 申请人:休斯电子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1