内容管理系统是由2个主要部分组成的:硬件基础设施和软件组件,通过一个统一的系统架构来表示。硬件基础设施为内容的存储、处理和传送提供基本资源。但仅仅把这些组件装配起来并不足以对内容进行管理,因为它们只是提供了基础设施,即便加上它们的标准软件,这些软件仍只是系统的基本组成部分。内容管理系统是在这些基本软件和那些能执行特定任务的软件系统的基础上开发出来的。为此,需要一个统一的架构来界定不同的模块以及它们是如何在一个系统环境下互相作用的。
系统架构必须要考虑具有富内容组织结构的用户需求和工作流程(见第2章)。同时,系统架构还必须考虑各内容组件的特点和特征,要能够对素材以多种格式编码,以便在不同环境中服务于不同的目的;应该能对素材的多重拷贝加以管理,虽然有些是非电子版的,但仍是系统的一部分。内容管理系统还应对不同的内容表示方式加以支持。目前还没有标准的元数据模型或被广泛认可的框架。由于具有较长历史的组织均已建立了其特有的工作流和系统,以表示和管理本组织的内容。因此,内容管理系统应该可以集成现有系统或以某种方式将其替换掉。这就要求内容管理系统不仅能为某个信息系统或数据库提供一个标准的元数据表示方案,而且必须能够集成多个系统,并通过统一的界面向用户提供通用的服务。
然而,在今天的内容生产中,仅支持现有的工作流程是不够的。内容处理、生产、传输、存档的新方法变得越来越重要。例如,现在媒体正向全面数字化、无磁带化、基于文件的生产环境发展。目前,有很多具体的实施方案还处在开发阶段,标准的方法、模块或最佳实践方案还没建立起来。即便是自动素材处理等小型开发也还在实验阶段,而自动素材处理对内容管理有着深远的影响。
所有这些,对潜在的系统架构提出了大量的只有当系统具有灵活性和自适应性时才能支持的要求。总之,内容管理系统必须能在异种环境下运行。这不仅是来自用户的需求,对不同系统集成的要求,也是来自作为整个软硬件基础设施组成部分的软件组件和硬件系统的要求。
本章介绍了一个范例性的内容管理系统架构,它在开发中考虑到了现代内容生产与管理的关键需求。首先,介绍了该系统的基本设计原理。然后,给出软件架构模型,并加以详细论述。对不同的模块及其各自功能、特点进行了检验。本章不涉及应用及系统集成的问题,这些将分别在第8、9章中介绍。
6.1软件设计原理
模块化是该系统架构的主要设计原理,它提供了对内容管理系统内在的多样性和复杂性加以掌控所不可或缺的灵活性。下面的段落提出了对这些原理的见解,用以指导后面将要介绍的架构的开发。读者很有必要了解这些原理,以便清楚了解为提供必要的支持,在系统的不同部分中,核心概念和需求是如何被实现的。
6.1.1通过分布式实现可扩展性
在企业范围环境中,内容管理系统典型的任务是:服务于大量的用户、管理大量的资产、存储海量的数据,因此必须具有很高的性能和可靠性。若采用大型中心服务器和数据库加以实现,必然会产生瓶颈。因此,企业内容管理系统设计所依据的原则,是通过分布式实现可扩展性,以便在需要提高性能或存储空间时,可以方便地给系统增加资源。
为了实现这一点,系统设计必须满足一些基本要求:
·架构的每个组件必须能在专用的服务器平台上运行,这意味着所有组件间的通信必须完全基于网络。
·由于内容管理系统的组件可能被分布到在物理上相隔很远的服务器上,这意味着采用的网络协议应该能够通过广域网实现组件之间的通信。
·只要有可能,内容管理系统的组件应该被设计成能够同时满足多个请求,并行地运行,通过负载分配提高可用性和性能。
·只要有可能,内容管理系统的组件不应该有对特定硬件可用性的要求;这些组件应该能在内容管理系统硬件架构中的任何一个服务器平台上运行。
·内容管理系统的组件应该能在其他内容管理系统的组件没有响应或发生故障时,具有自身的弹性,即它们必须具有作为标准功能模块的多重连接策略和恢复方法。
当内容管理系统满足这些需求时,就有可能在不止一个服务器上为系统安装建立所需的(软件)组件,并依据需要在任何一个附加平台上运行这些组件(如从某个服务器的硬件故障中快速恢复),从而实现灵活的故障应急方案。此方案既能由人工操作实现,也能通过建立先进的集群软件包来实现。
6.1.2服务组
服务是指在整个架构中自身包含的、用于执行特定任务的模块,可加强内容管理系统的功能。这种功能性模块包括上载、输入输出、素材分析、索引、转换、转码、对素材的修剪和拼接等。
总之,服务是面向工作的后台任务,它们存取现有的素材或元数据,修改或新建素材或元数据。为了与通过分布式达到可扩展性和冗余性的观点保持一致,很多服务可以采用对等服务组概念。在该模型中,一个服务的多个实例加入到一个组中,并通过单一的界面为系统的其余部分联合提供资源,它们看起来就好像是一个单一的服务。
在一个服务组中,每个服务实例在一个专用服务器上运行。借助服务和服务器平台,服务可提供一定量的资源(即可由它并行处理的任务)。例如,一个安装在专门服务器硬件平台上的视频分析服务实例,可以并发运行2~3个分析进程,并仍能比实时处理更快地完成。
服务必须满足特定需求,如它必须能在任何时刻重启一个服务,在发生故障后它必须能恢复到原先的状态。
采用此概念,大量可用的资源通过增加服务实例的数量,可轻易地扩展。依据实例运行所在的服务器平台,每个实例再提供一定数量的资源。所有同类的服务加入到一个服务组,该组以一个单一的服务形式,呈现给系统的其他部分,并且该组内的所有服务的所有资源都可以提供出来。通过这种唯一的界面,该组接受作业,提供对状态信息和事件日志信息的存取,并提供一个界面可以对估计剩余的进程时间进行查询,或对资源进行提前预订。该组本身负责为每个服务器调度工作,管理其内部的通信,并提供如前所述的界面。
从组织角度看,任何服务可以在一个服务组上注册和注销。其中一个服务充当服务组管理者的角色,处理联合界面。管理器一般由第一个通过系统的命名授权(即命名服务)来承担。所有后续启动的服务可通过命名服务识别出管理器,并直接注册到管理器。在管理器负责周期性地核对命名服务的存在性和注册的有效性的同时,其在服务组中的成员也必须周期性地核对管理器的存在性和可用性。
如果命名服务失败,管理器会向另一个已经接管的命名服务实例提出注册请求,如果管理器管理不成功,组内所有的服务将连接到命名服务,再进行协商以便产生一个新的管理器(这里仍采用先来先服务的原则),并再注册到新的管理器上。
该方法实现了对服务的动态添加和移除,从而配置可用的资源,并在系统组件发生故障时保持操作的稳定性,实现对资源和服务实例相关冗余度的灵活配置。
6.1.3代理器-管理器-服务器的概念
内容管理系统应该提供具有对分布式素材设备和数据管理系统进行透明存取的应用和服务,甚至通过广域网对远程资源进行透明存取。也就是说,对于服务用户(可以是一个应用、服务或其他内容管理系统模块)而言,服务被看做一个实例,通过一个统一的标准界面进行访问。为了做到这一点,应采用代理器和管理器的概念。具体说明如下:
·在单一服务器层次上,建构对于特定服务组件的多个实例,以达到最优性能和可用性。
·在组织中的单一位置,建构多存储簇,以达到最大的灵活性和可扩展性。
·对组织的多位置进行集成,使之看上去像是单个的统一系统。
·多组织之间的交互,使得它们能够无缝地共享选定的项目。
基于代理器所支持的服务,它们基本上提供2种功能:
·它们可充当分布和收集的节点。数据库代理器是一个例子:
接受客户机的查询。
通过这些查询把多个系统和现有数据库联合起来。
收集这些数据库返回的结果。
把合并的结果返回给客户端。
·它们可充当工厂。流代理器是一个例子:
从客户机收到对客户机流素材的请求。
从代理器所知道的诸多服务器中选择合适的流服务器。
在该服务器创建一个控制界面的实例。
向客户机传回界面,随后客户机取得对服务器的直接控制,而不再需要代理器的介入。
代理器复制由管理器提供的界面,由此形成一个由代理器提供的界面。实际上,代理器真正地拥有完整的数据模型或所有可从某一特定设备获得的应用程序接口(Application Programming Interface, API)。无论这些应用访问一个管理器还是一个代理器,它对应用都是透明的,即对它们来说每个访问相当于访问一个提供特定功能的代理器。
代理器可向下一级管理器或向其他代理器传递请求。由此,请求可分布在一个代理器/管理器组成的层次系统中。代理器收集和汇编对请求的响应,并向上级代理器实例提交收集来的应答。这样,一个分布式请求的结果最终被顶级代理器收集汇编,并被提交给提出请求的应用。我们也可以用这样的方式配置响应流程,即所有响应被立刻递交给上一级单元。
6.2软件架构
在讨论更详细的架构之前,这些组件涉及内容管理系统主要的管理方面(即对数据和素材的管理)和对内容的贡献或存取。相对而言,连接是被动的(即素材和元数据不改变),而贡献(内容创造或是文件编制)则是一个活动的进程。作为一个查询和检索的结果,可能会有内容输出,但这个交互活动不会真正改变内容。
简单而言,内容管理系统有3个主要的功能:
·内容创建:包括所有与生产有关的工作,比如节目策划、信号录制、编辑工作、后期制作、编排和播出。
·文件编制:包括所有手工的编目和索引工作。
·自动特征提取:这是内容管理系统中非常受欢迎的功能,因为它包括所有直接从素材自动获得索引信息的技术(如影像捕捉、关键帧提取、语音识别、说话人识别及声音分析等)。
有意思的是,内容管理系统倾向于在录制时对手工索引提供实时注释功能(标引),这样可在内容创建的初期阶段就引入编目工作的部分。
除了功能元素外,还有2个主要的模块构成了内容管理系统的基础,即素材管理和数据管理。
6.2.1素材管理
素材管理是以对素材存储、供应及操作为主要目的的工作。素材管理的主要组件是:
·存储管理服务:该服务根据不同的可配置存储策略,自动、有效地将素材项目在存储层次结构中移动。
·转码服务:该服务提供对文件格式和编码格式的转换。
·传送服务:如文件传输和流服务,以便上载和供应素材。
·数据库:其中保存了技术元数据(如格式、比特率、色彩深度等)和管理信息(如位置、文件大小等)。
素材管理系统可管理一个素材对象的多重版本。每个版本服务于特定的目的。例如:
·原始磁带拷贝:内容管理系统要能够管理原始拷贝,载体通常是传统模拟格式或数字视频磁带,并且在素材管理中必须存在一个该拷贝的引用参照。
·高品质文件拷贝:原始拷贝的文件版本,信号质量与原始磁带拷贝没有区别,一般是在上载时编码产生,也可作为已经编码的文件输入。如果一个先进的数字压缩视频磁带格式被上载,高品质文件拷贝将保留原始编码格式(如算法、参数、比特率等)。
·EDL浏览副本:中等品质文件拷贝,可在内容管理系统环境中用于剪辑和离线编辑,要求有必需的带宽。
·内容浏览副本:素材的低品质版本,存在局域网和广域网环境中用于查看和选择。
·关键帧:静态帧,一般从素材中自动提取。
6.2.2数据管理
作为典型的信息技术,数据管理基本上由数据库和搜索引擎组成,它负责对用来描述素材的元数据进行组织和管理,此描述性元数据是开发节目或内容项的关键。
节目或项与相应的素材之间的关系可以是一对多的,一个节目可存档于几个不同的素材版本中,所有这些版本可共享同样的节目标识和描述。元数据可将节目或项作为一个整体加以描述,或可通过连接时码引用一个部分或片断(参见4.2)。
不仅数据管理可自己存储和提供元数据,内容管理系统一般还提供专门的应用来支持特定的索引工作流。例如:
·实时注解:在输入的材料正在被上载之时,对其加以注解。比如,在对实况体育赛事的新闻输入、或连续镜头上载的同时,其内容就被进行了分类。实时注解一般提供一组足以辨识材料的有限的元数据,并使得即便在材料还在录制的同时即可成功地检索,但缺少完全编目的深度。
·深度编目:一般是一个比实时处理要长的过程。支持深度编目的应用倾向于如同义词支持和合法清单等特性,并通常提供更复杂的用户界面,以提供详细的内容注解。
·自动特征提取:这些工具是非常新的技术领域。尽管影像捕捉和关键帧提取已经成功地用于视频索引,但语音识别、说话人识别或者音频分类仍然需要完善才能投入有效使用。不管怎样,这种技术具有在不久的将来能实现自动内容分类的潜力。