VOD(KTV视频点播)系统是用来按用户需求将视频信息通过宽带发布的一种方式。VOD 服务器环境是非常复杂的,它的设计采用Client/Server模型,并且适应分布式计算环境。
VOD系统是由在分布式环境中具有不同功能的一些子系统组成。这些子系统包含一个VOD、KTV管理工作站、一个或多个控制器和多个数据源。控制器是系统的核心,主要作用是为优化视频流而完成复杂的算法、处理类似VCR的用户请求等等。管理工作站完成所有管理功能,数据源提供视频信息内容的存储和提供高速的数据连接通道。只有管理工作站对外部用户是开放的,其它的子系统都因为安全原因而隐藏在防火墙之后。可以看出这是一个典型的分布式系统。对整个系统的网络管理解决方案必须完成以下要求:首先,使VOD系统易于管理; 其次,与现有的网络管理软件,如HP-OpenView能够无缝地结合。
■ 技术概览
针对多数分布式系统的管理方案都采用主代理/子代理的方式。这一方式使得组成管理框架的不同部分具有统一的结构和统一的行为模式。在整个管理域中,主代理就是控制器,子代理是接收者。
对于VOD系统来说,由于管理工作站是惟一在防火墙之外的设备,所有管理需求都要送到这一子系统,在其上要运行一些软件来决定是自己响应这些请求还是将其路由到其它的子系统,所以要在VOD管理子系统上实现主代理,在其它每个子系统上配置子代理。网络管理协议采用SNMP,因为VOD系统是基于TCP/IP的网络。在主代理和子代理之间的通信采用IBM的DPI(Distributed Protocol Interface)协议。DPI是一个很适合SNMP应用的轻量级协议。最后还需要一个界面友好的API 来作为子代理和实际的VOD子系统之间的通信协议。
■ 动态配置检测
KTV系统会按照需要配置多个控制器和数据源,网络管理服务器会首先查询主代理获得整个VOD系统的配置。每个子代理都和主代理建立连接,并且在启动后向主代理进行登记。如果此时主代理还没有做好准备响应这一请求,子代理将经过一段随机的时间后继续向主代理发送请求。子代理等侯一段随机的时间主要是考虑到,假如多个子代理建立连接都失败后,如果等侯一段固定时间的话,这些子代理将同时向主代理发起请求,主代理将面临同时处理多个请求的问题,这很像以太网中的CSMA/CD机制。网络管理工作站通过解释一张特定的表而发现配置信息。
■ 减少网络流量
对使用带内管理信令(控制和管理信令使用与应用数据同样的路径)的系统来说,减少控制信息占用的网络带宽是非常重要的。其中的一种典型方法就是缓存(caching)技术。
缓存对减少系统不同部分之间的交互作用是很有用的。简单的缓存技术即在第一次存取变量的时候将其放置在缓存中,便于下一次存取。缓存的策略由所缓存信息的类型决定。静态信息只需放置在缓存中以利于存取,而不必考虑信息的改变。而对于动态变量来说,情况就比较复杂,要考虑缓存变量的动态改变。在VOD系统中,主代理可以将配置的详细信息放置在缓存中,子系统可以通过主代理的缓存直接获得配置信息而不需要再去与其它子系统相互作用。但是状态信息是随着子系统的启动或关闭而改变的,如何处理这一动态信息呢?一个办法是异步更新。在VOD系统,可以使用SNMP traps在子系统启动或关闭时送出相应的信息,这一信息将使得主代理更新缓存。另一种缓存数据的有效方法是“生存时间(time-to-live)”。
在此方法中,指明缓存中变量保持有效的时间,一旦这一时间到期,缓存就丢弃其中的变量而重新刷新。
■ 按需的激活和非激活
系统的子系统应该可以随时灵活地打开或关闭。在VOD系统中,如果子代理被命令关闭,在退出之前它会向主代理注销自己。主代理然后更新上面提到的表中的状态条目,这样就可以拒绝任何发给已关闭的子系统的请求。而当子系统再次启动后又重新向主代理注册。
但是在特定条件下,比如子代理意外崩溃而没有来得及向主代理注销,可以通过以下方法解决这一意外情况:主代理定时向子代理发送“heartbeat”或“is-alive”信息。子代理在收到这一信息之后会发出相应的回应信息。如果主代理在特定时间之内未收到子代理的回应信息,就认为子代理意外退出,从而改变表中的特定信息。
■ 可伸缩性
这一特性对很多系统来说都非常重要,它使系统规模可以根据用户和市场需求伸缩。如果想要让这种主代理/子代理的形式适应大规模的分布式系统的话,系统应该有多个主代理。在小规模的系统中,只有一个主代理和多个子代理,主代理处理所有管理请求,其上有整个系统的全部信息。对于大规模的系统来说,应采用层次化的结构。这种层次化的结构包括多个主代理、子代理和一个顶级代理。在这种结构中,子代理向相应的主代理注册,而主代理要向顶级代理注册,顶级代理处理所有的管理请求。当系统的规模进一步扩大后,顶级代理的负担可能太重。在这种情况下,应该分担顶级代理的负担。顶级代理存有系统的全部配置。网管工作站通过与顶级代理交互会“发现”配置信息,网管工作站一旦发现配置信息,便直接与不同的主代理交互而获得必要的信息。
■ 可扩展性
对于一个系统的管理来说,会经常通过观察和实践得到需要管理的新的参数,优秀的管理解决方案应当很容易地提供对新参数的支持。在管理系统设计的初期,很难将各种情况考虑完全和包含各种参数。随着系统的发展、商业的需要、市场的改变、用户的变化、新技术的出现,需要添加新的管理模块来适应这一快速的变化。在VOD系统中,主代理和子代理的设计考虑到这一动态变化的情况,它们所要知道的详细细节不是通过固定的先验知识得到的,而是通过配置文件获取的,因此,可以在很短的时间内通过对文件的编程改变,来增强系统功能。
■ 结论
类似VOD的分布式系统的管理设计是非常有挑战性的。在设计的初期就要考虑很多因素,除了上面提到的各点之外,许多实际的因素也必须考虑,比如协议的选择、传输机制、冗余备份、容错机制等等,只有各种因素都考虑全面了,才能设计出优秀的VOD、KTV管理系统。 |