具体实施方式
下面结合附图说明本发明的具体实施方式。并行应用服务网关是一个提供了基于XML Web Services技术的可配置映射的运行时组件,能够将一个运行在并行计算集群系统上的并行计算应用程序映射成一个用WSDL定义的Web服务。 Web服务通常部署在并行应用服务网关服务器上,既能够连接到外部的公共网络,接受来自客户的访问请求,又能够访问到机群系统内部网络,实现和计算节点的通信。通过并行应用服务网关可隐藏并行应用程序访问的复杂性,降低了外部应用系统对并行计算机群系统集成的难度。外部应用系统不直接访问内部的并行计算程序,因此不受任何实现细节和服务位置的影响。将对并行计算集群内部并行计算程序的访问逻辑封装到一个单独的服务中还会提高访问逻辑的重用性。并行计算集群系统中的并行应用服务网关如图1所示。其中,并行应用服务网关通过网络与所述的并行计算集群的管理网络千兆交换机相连接;在并行应用服务网关中,主要提供以下功能:
服务映射:并行应用服务网关的主要功能是将现有的运行于并行计算集群系统之上的并行计算应用程序映射成用WSDL定义的Web服务,以供外部用户的访问。当内部集群系统上的并行计算应用程序被导入到服务网关的时候,将生成一个可以被外部请求者共享的WSDL文档。通过这个WSDL文档定义了一个Web服务,作为外部用户访问内部并行计算应用程序的代理。为了便于外部的服务请求者调用服务,这些Web服务还将被发布到UDDI(Universal Description,Discovery and Integration,统一描述、发现与集成)的相关目录中。在这些Web服务中封装了与并行计算应用程序进行通信所需的所有低级别网络通信功能,从外部调用者的角度来看,好像是这些运行在服务网关上的Web服务本身完成了全部的并行计算任务,而完全觉察不到背后集群系统的存在。
转换:在服务网关中需要在并行计算应用程序中内部信息组织与外部服务的通信契约所规定的格式之间建立映射。例如,并行应用程序可能由一组相互协作的细粒度对象组成,但其所用Web Services可能需要将XML文档作为输入内容,并且提供XML文档作为结果。网关负责在细粒度对象接口和XML文档之间进行转换。
UDDI发布和查找:服务网关使与UDDI注册中心的操作更容易。当使用服务网关映射一个供外部消费的并行计算应用程序时,可以在UDDI注册中心发布所导出的WSDL。当服务网关中的服务被修改过后,UDDI注册中心中的信息 将被及时更新。
安全和管理:提供Web Services请求的用户身份验证、访问权限控制等。
并行应用服务网关的工作过程:
第一步,需要将运行于集群系统上并行计算应用程序的文档导入到服务网关。在这个过程中,需要提供运行这个并行计算应用程序所需的相关信息,包括启动并行应用程序的脚本文件、输入参数、结果输出文件以及运行优先级等,并指定在服务网关中与之相对应的Web服务的名称,选择SOAP/HTTP传输通道。接下来并行应用服务网关将自动生成一个WSDL文件,通过其定义了一个用于实现和集群系统中并行计算应用程序通信的Web服务。然后并行应用网关将这个Web服务发布到UDDI注册中心的相关目录中。
第二步,服务请求者为了实现外部应用系统和并行计算集群系统的集成,需要获得和某个Web服务相关的WSDL文档。获得WSDL文档的途径有三种,第一种是服务请求者可以通过使用UDDI查找获得服务的WSDL文档;第二种是直接从服务网关获得的Web服务的一个WSDL副本;第三种是访问从服务网关获得的Web服务WSDL的URL从而间接获得。
第三步,服务请求者向服务网关发送SOAP请求,服务网关将启动集群系统上的并行计算应用程序,开始数据处理。处理结束后,服务网关将收到一个通知消息。服务网关获取计算结果后,经过必要的处理,然后返回给用户。通过并行应用服务网关访问集群系统的过程如图2所示。
并行计算集群系统与基于对象的媒体资产管理的融合:
把行为实现机制对象包含的服务(方法)实现代码分离出来,部署到媒体资产管理平台外部的高性能应用服务器上,并通过XML Web Services技术对外发布这些服务。在行为实现机制对象中仅仅包含与这些Web Services相关的WSDL文档,在运行时由对象库来实现对这些服务的动态调用。
首先,针对媒体资产管理中所涉及到的需要强大计算处理能力的环节的处理算法并行化。然后,基于MPI设计实现并行应用程序,并把并行应用程序部署到并行计算集群系统上。通过并行应用服务网关,可以把这些并行应用程序 对外暴露为一个基于网络的Web服务。最后,在基于对象的媒体资产管理平台中定义行为实现机制数字对象的时候,可以直接指向这些通过并行应用网关所暴露出来的的Web服务,从而获得较好的计算性能,并实现了基于对象的媒体资产管理平台和并行计算机群系统的平滑连接,其逻辑结构如图3所示。
实施例1
并行应用服务网关是一个提供了基于XML Web Services技术的可配置映射的运行时组件,能够将一个运行在算集群系统上的并行计算应用程序映射成一个用WSDL[171-172]定义的Web服务。Web服务通常部署在并行应用服务网关服务器上,既能够连接到外部的公共网络,接受来自客户的访问请求,又能够访问到机群系统内部网络,实现和计算节点的通信。通过并行应用服务网关可隐藏并行应用程序访问的复杂性,降低了外部应用系统对并行计算机群系统集成的难度。外部应用系统不直接访问内部的并行计算程序,因此不受任何实现细节和服务位置的影响。将对集群内部并行计算程序的访问逻辑封装到一个单独的服务中还会提高访问逻辑的重用性。
并行应用服务网关的结构图如图4所示,其中,网关的最上层是它提供的众多Web服务,如视频检索服务、视频转码服务等等。
再往下就是网关的支撑模块,包括:
UDDI服务模块:维护了一份网关提供的所有Web服务列表,用户可以通过该列表来发现自己需要的Web服务。
UDDI访问模块:对外部用户屏蔽了UDDI服务的访问细节,使用户能够通过关键字快速地搜索并定位到想要的Web服务。
服务映射模块:将用户对上层Web服务的请求映射为对集群系统上应用程序的调用,同时,它对用户屏蔽了应用程序可能有的复杂调用流程。
认证模块:对上层Web服务的发起请求的外部用户进行认证,确认该用户是否合法以及是否拥有足够的权限。
Web服务生成模块:负责为内部集群系统上的并行计算应用程序生成一个可以被外部请求者共享的WSDL文档,并生成相应的Web服务,作为外部用户访问 内部并行计算应用程序的代理;它同时将Web服务发布到UDDI服务上,以供检索。
权限配置模块:对外部用户对Web服务的使用权限进行配置。
运行监控模块:提供了当前网关的所有运行时信息,包括目前外部用户的服务请求状况,集群应用程序运行情况等等。
消息转换模块:在并行计算应用程序中内部信息组织与上层Web服务的通信契约所规定的格式之间建立映射。
如图1所示,并行应用服务网关被部署在一台应用服务器上,该应用服务器至少配置两个以太网络适配器,其中ethl端口连接到外部公共以太网络,接收来自公共网络用户的服务请求;而ethO则连接到内部私有以太网络,实现对内部集群系统提供的应用程序的调用。
并行应用服务网关通过SOAP协议接收来自外部客户的服务请求,将该请求转化成内部集群系统的信息格式,从而与集群系统的应用程序进行通信。
现在以视频转码服务为例来说明并行应用服务网关的工作过程,如图5和图6所示:
1.管理员调用网关的Web服务生成模块来生成视频转码服务,他将提供集群系统上视频转码程序的信息,包括启动程序的脚本文件、输入参数、结果输出文件以及运行优先级等;
2.Web服务生成模块根据管理员提供的信息生成视频转码服务以及它的WSDL文档;
3.Web服务生成模块在UDDI发布该视频转码服务;
4.管理员调用网关的权限配置模块来定义该服务的访问权限;
5.外部用户通过UDDI服务获得视频转码服务的WSDL文档;
6.外部用户向视频转码服务发送SOAP请求,请求包含了待转码视频资源在存储阵列中的定位信息以及外部用户的认证信息;
7.视频转码服务调用认证模块来校验外部用户的认证信息,确认他的权限;
8.视频转码服务调用服务映射模块来处理外部用户的SOAP请求;
9.服务映射模块调用消息转换模块,将SOAP请求转换成视频转码程序的调用指令;
10.服务映射模块通过转换得到的指令在集群系统上启动视频转码程序,程序运行期间,该模块负责同集群系统进行通信;
11.集群系统的每个计算节点首先从存储阵列上待转码视频资源,运行视频转码程序,最后产生用户所需要的新视频资源;
12.服务映射模块从集群系统获得新视频资源的定位信息;
13.服务映射模块调用消息转换模块将新视频资源的定位信息封装到SOAP消息中;
14.服务映射模块将该消息返回给视频转码服务;
15.视频转码将包含了新视频资源定位信息的SOAP消息发还给外部用户。
实施例2
如图7所示,并行计算集群系统与基于对象的媒体资产管理的融合:
把行为实现机制对象包含的服务(方法)实现代码分离出来,部署到媒体资产管理平台外部的高性能应用服务器上,并通过XML Web Services技术对外发布这些服务。在行为实现机制对象中仅仅包含与这些Web Services相关的WSDL文档,在运行时由对象库来实现对这些服务的动态调用。
首先,针对媒体资产管理中所涉及到的需要强大计算处理能力的环节的处理算法并行化。然后,基于MPI设计实现并行应用程序,并把并行应用程序部署到并行计算集群系统上。通过并行应用服务网关,可以把这些并行应用程序对外暴露为一个基于网络的Web服务。最后,在基于对象的媒体资产管理平台中定义行为实现机制数字对象的时候,可以直接指向这些通过并行应用网关所暴露出来的的Web服务,从而获得较好的计算性能,并实现了基于对象的媒体资产管理平台和并行计算机群系统的平滑连接,其逻辑结构如图3所示。
以电台/电视台中最为典型的新闻资源类型为例,说明本发明实施例利用数字对象对媒体资源进行建模及处理的具体实施方式。
领域建模:领域模型能够捕获系统语境中最重要的对象类型,领域对象代 表系统工作的环境中存在的“概念”或发生的事情。很多的领域对象或类可以从需求规格说明中找到,或者通过拜访领域专家得到。在本发明实施例中,所确定的媒体业务领域为新闻。
根据新闻领域语境的理解,新闻是一个复合对象的概念,通常来讲一则新闻除了包括文字稿件以外,可能还会包括一个或者多个与之相关的图片、视频、图表等内容,而文字稿件、图片、视频和图表等即为新闻领域的实体。在这些实体内容之间具有很强的相关性,通常希望能够从一种实体内容方便的导航到其它的相关实体内容。同时每一种实体内容又具有一定的相对独立性,也可以单独使用,作为素材用于其它节目的制作。
首先建立领域模型。需要说明的是,为了方便描述和简化问题,在这里只描述新闻领域中包括的几种典型的实体,即:文字稿、图片和视频。新闻的领域模型如图8所示。
新闻、新闻文稿、新闻视频、新闻照片都可以被视为一种媒体资源,这些媒体资源除了具有数据信息以外,还拥有两类描述它们的元数据:
1)根据Dublin Core1.1版本标准所定义的元数据,包括:标题(Title)、创建者(Creator)、主题(Subject)、描述(Description)、出版者(Publisher)、其他责任者(Contributor)、日期(Date)、类型(Type)、格式(Format)、标识符(Identifier)、来源(Source)、语种(Language)、关联(Relation)、覆盖范围(Coverage)、权限(Rights);
2)用户自定义的元数据,用于对资源本身进行描述,根据实际的应用需要可以任意添加。
对象建模:采用基于对象的数据模型对媒体资产建模之前,需要采用面向对象的建模方法对新闻领域中的各个实体进行建模。以尽可能多的发现这些实体的属性、行为和相互关系。
建立新闻、文本、视频、图像四个类,分别抽象新闻领域中的新闻、新闻文稿、新闻视频、新闻照片四种实体为媒体资源对象。为了标识这些媒体资源对象,每种媒体资源对象都会有一个识别(ID)的属性。新闻领域模型中元数 据映射为类的属性,视频数据、图像数据和文本数据也映射为相应类型中的属性。此外,建立一个DublinCore的类型来表示Dublin核心元数据集,它拥有15个属性,分别对应该核心集中的15个元数据,每种类型的媒体资源对象都包含一个DublinCore的对象。因此可以得到新闻领域的UML对象模型,如图2所示。
从图9的新闻领域的UML对象模型可以看到,一个新闻对象包含了一个DublinCore类型的对象DC,以及一个或多个文本对象(新闻文稿)、视频对象(新闻视频)和图像对象(新闻照片)。此外,它还拥有一组自定义属性。
一个视频对象包含了一个DublinCore类型的对象DC,一组自定义属性,属性HighQualityVideo表示视频数据,另外它拥有Preview()(用来预览视频)、Convert()(用来对视频格式进行转换)等方法。
一个文本对象包含了一个DublinCore类型的对象DC,还有一组自定义属性,属性OrignalText表示新闻文稿的文本数据,另外它拥有Transform()(对文本格式进行变换)等方法。
一个图像对象包含了一个DublinCore类型的对象DC,还有一组自定义属性,属性HighQualityPic表示图像数据,另外它拥有GetThumbnails()(获取缩略图)、GetHighQuality()(获取原图)等方法。
需要说明的是,图9中看到的所有对象的自定义属性、操作以及它们之间的关系,为了描述方便已经进行了简化处理,实际客户的需要远远比这复杂得多。
数字对象映射:基于对象的数据模型是建立在面向对象概念的基础之上,数字对象和UML对象模型中对象具有高度的一致性。因此可以将新闻的UML对象模型中的新闻、视频、文本、图像四个对象,分别映射为媒体资产管理系统中的新闻数字对象、视频数字对象、文本数字对象、图像数字对象。即:将媒体资源对象映射为媒体资源数字对象。
在数字对象中数据流分为四种类型:
1)X类数据流(Implementer-Defined XML Metadata),以XML的形式直 接存储在数字对象内部的内容;
2)M类数据流(Repository-Managed Content),以字节流的形式存在对象库内部进行储储和管理;
3)E类数据流(Referenced External Content),在数字对象保存了指向实际内容的URL;
4)R类数据流(Redirect),在数字对象保存了指向实际内容的URL,但不用通过对象库进行访问。
新闻数字对象的映射(如图9、10所示):
将Uml对象模型中的属性映射为数字对象中的数据流,其中:
属性ID,映射为系统元数据流PID,MIME格式为text\xml,其类型为X。
属性DC,映射为系统元数据流DC,MIME格式为text\xml,其类型为X。
其余自定义属性,映射为用户自定义的数据流Multimedia Metadata,MIME格式为text\xml,其类型为X。为我们根据用户的编目和检索需求自定义的元数据,如新闻类型、新闻摘要等。
视频数字对象的映射(如图9、11所示):
将Uml对象模型中的属性映射为数字对象中的数据流,其中:
属性ID,映射为系统元数据流PID,MIME格式为text\xml,其类型为X。
属性DC,映射为系统元数据流DC,MIME格式为text\xml,其类型为X。
其余自定义属性,映射为用户自定义的数据流Multimedia Metadata,MIME格式为text\xml,其类型为X。为我们根据用户的编目和检索需求自定义的元数据,如播出时间、节目时长等。
属性HighQualityVideo,映射为用户自定义的数据流HighQualityVideo,MIME格式为application\mpeg,由于视频资源占磁盘空间大,将其存储于专门的存储服务器中,与数字对象本身分离开来,其类型为E。
将UML对象模型中的操作映射为数字对象中的分发器,包括以下步骤:
定义一个视频行为定义对象,为视频类型数字对象的行为做一个定义与说明,是对视频数字对象所具有行为的一个抽象说明,类似于Java程序语言中的 接口定义。对于一个视频行为对象可以有多个实现,即可以有多个相应的视频行为实现机制对象与之相关。在UML模型中,视频对象所包括的Preview()(用于预览视频)和Convert()(用于对视频格式进行转换)两个操作,映射为在数据流MethodMap中对Preview()、Convert()两个操作的定义,MIME格式为text\xml,其类型为X。
定义一个视频行为实现机制对象,是对视频类型数字对象行为的具体实现,它实现了视频行为定义对象中所定义的抽象操作。需要说明的是,我们并没有将可执行代码放在视频行为实现机制对象中,而是通过一个基于WSDL标准的描述,将服务指向了一个外部的XML Web Services,从而获得了较好的灵活性和扩展性。在UML模型中,视频对象所包括的Preview()(用于预览视频)和Convert()(用于对视频格式进行转换)两个操作,映射为在数据流WSDL中对Preview()、Convert()两个操作如何访问做了具体的说明,包括数据类型定义、服务所支持的操作、输入/输出信息格式、网络地址以及协议绑定等,其MIME格式为text\xml,其类型为X。需要指出的是,此处WSDL中所描述的Web服务来自于并行应用服务网关中的“视频转码服务”媒体资源Web服务单元。
在视频数字对象的分发器中包含了对视频行为定义对象和视频行为实现机制对象的引用,它们共同组成了对视频操作的定义与实现,完成对UML对象模型中对对象操作的映射。
图像数字对象的映射(如图9、12所示):
将Uml对象模型中的属性映射为数字对象中的数据流,其中:
属性ID,映射为系统元数据流PID,MIME格式为text\xml,其类型为X。
属性DC,映射为系统元数据流DC,MIME格式为text\xml,其类型为X。
其余自定义属性,映射为用户自定义的数据流Multimedia Metadata,MIME格式为text\xml,其类型为X。为我们根据用户的编目和检索需求自定义的元数据,如图像的特征值、图像大小等。
属性HighQualityPic,映射为用户自定义的数据流HighQualityPic,MIME格式为application\jpeg,由于其大小适中,将其存储于内容管理平台中,其 类型为M。
将UML对象模型中的操作映射为数字对象中的分发器,包括以下步骤:
定义一个图像行为定义对象,对图像类型数字对象的行为做一个定义与说明,是对图像数字对象所具有行为的一个抽象说明,类似于Java程序语言中的接口定义。对于一个图像行为对象可以有多个实现,即可以有多个相应的图像行为实现机制对象与之相关。在UML模型中,图像对象所包括GetThumbnails()(获取缩略图)和GetHighQuality()(获取高质量图像)两个操作,映射为在数据流MethodMap中对GetThumbnails()、GetHighQuality()两个操作的定义,MIME格式为text\xml,其类型为X。
定义一个图像行为实现机制对象,是对图像类型数字对象行为的具体实现,它实现了图像行为定义对象中所定义的抽象操作。需要说明的是,我们并没有将可执行代码放在图像行为实现机制对象中,而是通过一个基于WSDL标准的描述,将服务指向了一个外部的XML Web Services,从而获得了较好的灵活性和扩展性。在UML模型中,图像对象所包括GetThumbnails()(获取缩略图)和GetHighQuality()(获取高质量图像)两个操作,映射为在数据流WSDL中对GetThumbnails()、GetHi ghQual ity()两个操作如何访问做了具体的说明,包括数据类型定义、服务所支持的操作、输入/输出信息格式、网络地址以及协议绑定等,其MIME格式为text\xml,其类型为X。
图像类型对象的分发器包含了对图像行为定义对象和图像行为实现机制对象的说明,它们共同组成了对图像操作的定义与实现,完成对UML对象模型中对对象操作的映射。
文本数字对象的映射(如图9、13所示):
将Uml对象模型中的属性映射为数字对象中的数据流,其中:
属性ID,映射为系统元数据流PID,MIME格式为text\xml,其类型为X。
属性DC,映射为系统元数据流DC,MIME格式为text\xml,其类型为X。
其余自定义属性,映射为用户自定义的数据流Multimedia Metadata,MIME格式为text\xml,其类型为X。为我们根据用户的编目和检索需求自定义的元 数据,如关键字、摘要等。
属性OrignalText,映射为用户自定义的数据流OrignalText,MIME格式为application\doc,由于其占磁盘空间小适中,将其存储与内容管理平台中,其类型为M。
将UML对象模型中的操作映射为数字对象中的分发器,包括以下步骤:
定义一个文本行为定义对象,为文本类型数字对象的行为做一个定义与说明,是对文本数字对象所具有行为的一个抽象说明,类似于Java程序语言中的接口定义。对于一个文本行为对象可以有多个实现,即可以有多个相应的文本行为实现机制对象与之相关。在UML模型中,文本对象所包括的Transform()(对文本的格式进行变换)这一个操作,映射为在数据流MethodMap中对Transform()这一个操作的定义,MIME格式为text\xml,其类型为X。
定义一个文本行为实现机制对象,是对文本类型数字对象行为的具体实现,它实现了文本行为定义对象中所定义的抽象操作。需要说明的是,我们并没有将可执行代码放在文本行为实现机制对象中,而是通过一个基于WSDL标准的描述,将服务指向了一个外部的XML Web Services,从而获得了较好的灵活性和扩展性。在UML模型中,文本对象所包括Transform()(对文本的格式进行变换)这一个操作,映射为在数据流WSDL中对Transform()这一个操作如何访问做了具体的说明,包括数据类型定义、服务所支持的操作、输入/输出信息格式、网络地址以及协议绑定等,其MIME格式为text\xml,其类型为X。
在文本数字对象的分发器包含了对文本行为定义对象和文本行为实现机制对象的引用,它们共同组成了对文本操作的定义与实现,完成对UML对象模型中对对象操作的映射。
为了表示各种媒体资源之间的关系,在系统中基于RDF(ResourceDescription Framework)定义了一个最基本的关系本体(Ontology),提供了一个表示数字对象内外各种关系的核心集。通过这个关系本体,可以描述新闻对象的各种组成部分之间各种关系,使得各种资源之间的导航问题得以解决,其中:
将图像和新闻间的聚合关系映射为图像数字对象中的数据流RELS-EXT,MIME格式为text\xml,其类型为X。数据流RELS-EXT采用的RDF描述如下程序代码所示:
<rdf:RDF
xmlns:rel=″info:fedora/fedora-system:def/relat ions-external#″
xmlns:rdf=″http://www.w3.org/1999/02/22-rdf-syntax-ns#″>
<rdf:Description rdf:about=″info:fedora/MITI-CM:1085″>
<rel:isMemberOf
rdf:resource=″info:fedora/MITI-CM:1084″></rel:isMemberOf>
</rdf:Description>
</rdf:RDF>
上述程序代码表达的含义为:PID为MITI-CM:1085的数字对象是PID为MITI-CM:1084的数字对象的一个子对象。此处PID为MITI-CM:1085的数字对象为图像类型数字对象,MITI-CM:1084为新闻类型的数字对象。
将文本和新闻间的聚合关系映射为图像数字对象中的数据流RELS-EXT,MIME格式为text\xml,其类型为X。数据流RELS-EXT采用的RDF描述如下程序代码所示:
<rdf:RDF
xmlns:rel=″info:fedora/fedora-system:def/relations-external#″
xmlns:rdf=″http://www.w3.org/1999/02/22-rdf-syntax-ns#″>
<rdf:Description rdf:about=″info:fedora/MITI-CM:1086″>
<rel:isMemberOf
rdf:resource=″info:fedora/MITI-CM:1084″></rel:isMemberOf>
</rdf:Descript ion>
</rdf:RDF>
上述程序代码表达的含义为:PID为MITI-CM:1086的数字对象是PID为MITI-CM:1084的数字对象的一个子对象。此处PID为MITI-CM:1086的数字对 象为文本类型数字对象,MITI-CM:1084为新闻类型的数字对象。
将视频和新闻间的聚合关系映射为图像数字对象中的数据流RELS-EXT,MIME格式为text\xml,其类型为X。数据流RELS-EXT采用的RDF描述如下程序代码所示:
<rdf:RDF
xmlns:rel=″info:fedora/fedora-system:def/relations-external#″
xmlns:rdf=″http://www.w3.org/1999/02/22-rdf-syntax-ns#″>
<rdf:Description rdf:about=″info:fedora/MITI-CM:1087″>
<rel:isMemberOf
rdf:resource=″info:fedora/MITI-CM:1084″></rel:isMemberOf>
</rdf:Description>
</rdf:RDF>
上述程序代码表达了的含义为:PID为MITI-CM:1087的数字对象是PID为MITI-CM:1084的数字对象的一个子对象。此处PID为MITI-CM:1087的数字对象为文本类型数字对象,MITI-CM:1084为新闻类型的数字对象。
经过上述步骤,可以得到一个表示新闻领域的数字对象模型,如图14所示。
基于对象的媒体资产管理系统如图15所示,本发明实施例的系统由一系列核心服务子系统组成,其中包括:对象库服务、检索服务、集合服务、名字解析服务、用户接口服务。这些核心服务子系统之间有通信接口,这使得核心服务子系统之间、核心服务子系统与建立在本发明实施例系统之上的增值应用之间能够实现无缝结合。
数字对象库(Repository),是一个可以通过网络访问的存储系统,提供了数字对象的存储、访问、管理机制,并对外提供了与数字对象库相关的其它服务。而客户对系统的所有操作,包括增加、更新、删除、提取等等,都通过统一的RAP(Repository Access Protocol)协议完成,从而保证信息的一致性、完整性和安全性。为了适应海量媒体资产管理的需要,在本实例系统中可以支持多个分布式数字对象库服务,具有很好的扩展性。在多个数字对象库并存的 情况下,必须保证数字对象库之间PID的唯一性,避免发生PID的冲突。为了做到这一点,首先,GNA(Global Naming Authority)为每一个LNA(Local NamingAuthority)分配全球唯一的名称。LNA可以把由GNA分配的名称作为对象库的名称,也可以通过“.”+后缀的形式扩展生成唯一的对象库的名称。
检索服务,是一个提供分布式检索服务的计算机系统,维护了大量的检索信息,这些信息可以是被独立的维护,或是作为搜索系统的一部分。检索服务提供了数字对象的发现机制,负责存储管理用户安全控制信息和关于数字对象的元数据信息等。底层基于关系数据库管理存储所有的元数据信息、安全权限控制信息、用户信息,并支持参量检索、文本检索、参量/文本混合检索等多渠道检索方式。
名字解析服务,是一个提供分布式目录服务的计算机系统,其功能类似于互联网上DNS服务,负责注册和解析数字对象的Handle。当收到服务请求的时候,自动解析出在哪一个对象库中保存了与访问者提供的Handle相对应的数字对象。
集合服务,提供了把一系列离散的数字对象和相关服务聚合为一个有意义的更高层业务对象中的方法,使得对数字资源的访问更加容易。媒体资产所处的层面高于数字对象所处的层面,对最终用户而言,“媒体资产”比“数字对象”更容易理解。集合服务器扫描一组检索服务器,读取它们产生的元数据,并根据“媒体资产定义标准”确定将哪些数字对象纳入媒体资产。这些数字对象可能分布在多个对象库中,并被多个检索服务器检索。
用户接口服务,提供了用户访问各种其它服务的接口。针对用户在媒体资产管理中角色的不同,可以分大致为管理人员和普通用户两类。管理人员主要是通过系统完成对媒体资源的操纵和管理,对系统的安全性要求高,用户界面要求具有较强的交互性,使用的范围较小,地点较为固定,而且涉及到处理大量数据。例如,媒体资产的编目、媒体资产的上载功能等。对于这部分用户界面,适合于采用C/S结构。然而,普通用户主要是通过系统访问和保存媒体资源,对系统的安全性、交互性要求不像管理人员这么高,使用范围广,地点灵 活,功能变动频繁。例如,媒体资产的查询、统计、分析功能等。对于这部分用户界面,适合于采用B/S结构。
因此,在媒体资产管理平台中采用一个C/S加B/S的混合型结构。相对于单独采用C/S或B/S,这种方案的优点在于:(1)保证敏感数据的安全性,特别是对资源库的修改和新增记录加强了控制;(2)经济有效地利用企业内部计算机的资源,简化了一部分可以简化的客户端;(3)既保证了复杂功能的交互性,又保证了一般功能的易用与统一;(4)系统维护简便,布局合理;(5)网络效率最高。当用户想获取媒体资源时,客户程序发送查询请求至检索服务器,然后检索服务器返回搜索结果并将数字对象存储的具体存储位置加密成安全对象令牌。客户端根据检索服务器发来的安全令牌发出获取内容对象的请求至对象库服务,最后对象库服务响应并解析请求,并将内容对象直接返回至客户端。
如图16所示,本实施例的系统是一个基于网络的系统,它为数字对象提供了运行环境,并向外提供了对数字对象进行管理和访问的相关服务。本实施例的系统为三层,即接口层、业务逻辑层、存储层。其中:
接口层,构建于XML Web Services技术之上,对外提供对数字对象的管理服务(API-M)、访问/搜索服务(API-A、API-A-LITE)以及OAI Provider。
1)管理服务(API-M)服务提供了下面几类操作:
Ingest-以XML编码的方式导入数字对象;
Export-以XML编码方式导出数据对象;
Create-通过API请求的方式交互式地进行对象创建;
Maintain-通过API请求的方式交互式地进行对象修改;
Validate-把完整性规则应用到对象上;
Identify-生成唯一的对象标识PID;
Security-用户认证和访问控制;
Preserve-自动的内容版本和审计记录管理;
2)访问/搜索(API-A、API-A-LITE)服务提供了下面几类操作:
Search-从对象库中搜索数字对象;
Object Reflection-通过反射发现对象能够向外提供什么分发;
Object Dissemination-请求一个对象内容的视图;
3)OAI Provider服务提供了下面操作:
OAI-DC records-实现对象库之间元数据的交换;
在接口层中,通过WSDL发布服务描述信息。此外,这些服务大都支持SOAP和HTTP两种绑定方式。
业务逻辑层,根据数字对象模型实现了全部接口层对外所暴露的各种服务,包括管理子系统、安全子系统和访问子系统三个部分。
管理子系统实现了一系列用于创建和管理数字对象的操作。在运行时响应通过API-M访问的客户端请求,并作为进行创建和操纵数字对象的中介人。主要功能模块包括:对象管理模块(Object Management)、组件管理模块(ComponentManagement)、对象验证模块(Object Validation)以及PID生成模块(PIDGeneration)。
对象管理模块主要负责API-M接口中和数字对象这个整体相关的那些操作,包括添加一个新的数字对象、删除一个数字对象或者是获得一个数字对象。在对象管理模块中,并不对构成数字对象中的那些组件进行操纵。从对象管理模块的角度来看,数字对象是一个具有PID的字节流。管理子系统把对象层次的API-M请求翻译成存储层中相应的数字对象的读、写操作,从而实现对数字对象的处理。
组件管理模块主要负责API-M接口中和数字对象组件(数据流和分发器)相关的那些操作,包括添加一个组件、删除一个组件和修改一个组件。管理子系统把对象组件层次的API-M请求翻译成存储层中相应的数字对象的读、写操作,从而实现对数字对象组件的处理。
对象验证模块主要是被对象管理模块和组件管理模块所调用,以确保所添加或修改的数字对象或组件符合定义规范。
PID是一个持久不变、唯一的标识符,用于在对象库中内唯一地标识每个数字对象。在多个对象库并存的情况下,必须保证对象库之间PID的唯一性,避 免发生PID的冲突。为了做到这一点,要为每个对象库分配一个全球唯一的标识符,并把它作为此对象库中产生的所有PID的命名空间。当一个新的数字对象添加到对象库的时候,API-M接口的方法(例如,IngestObject(),CreateObject())将调用PID生成模块,生成一个新的PID。管理员通过API-M管理和操纵数字对象中的内部结构,如图10所示。
访问子系统支持数字对象的反射和数字对象内容的分发,在运行时响应通过API-A和API-A-LITE访问的客户端请求,并作为进行访问基于XML编码的数字对象中介人。主要功能模块包括:搜索模块(Search)、对象反射模块(ObjectReflect)以及内容分发模块(Dissemination)。
搜索模块实现了API-A中对数字对象进行搜索的操作,提供了一种基于字段的简单搜索服务,数字对象的关键元数据和Dublin Core元素都是可搜索的字段。关键元数据包括:pid、label、cModel、state、ownerId、cDate、mDate和dcmDate。Dublin Core元素包括:title、creator、subject、description、publisher、contributor、date、type、format、identifier、source、language、relation、coverage和rights。根据指定的字段值,可以在对象库内对数字对象进行搜索。
对象反射模块实现了API-A中对数字对象进行反射的操作,使得客户能够发现数字对象究竟能过提供什么样的内容分发。这些操作主要包括:GetBehaviorDefinitions、GetBehaviorMethods、GetBehaviorMethodsAsWSDL和GetObjectMethods。其中,GetBehaviorDefinitions操作用于标识数字对象所订阅的行为定义(Behavior Definition)对象的类型,GetBehaviorMethods操作返回指定的行为定义中所包含的方法,GetBehaviorMethodsAsWSDL操作则返回指定的行为定义中所包含方法的WSDL描述信息,GetObjectMethods操作返回一个指定的数字对象中所有相关行为定义中方法的定义。
内容分发模块实现了API-A中对数字对象中内容进行分发的操作,提供了从数字对象中获取内容的唯一方法GetDissemination。通过GetDissemination方法可以从数字对象获得一个特定的内容视图。
在GetDissemination请求中封装了一个特定的行为定义类型中所定义的行为方法。GetDissemination请求隐藏了服务端的所有实现细节,客户不必关心这个行为方法是如何执行的。也就是说,客户不需要知道行为实现机制(Behavior Mechanism)进行了什么样的工作,也不需要知道请求是如何通过行为实现机制被调用。当发送一个GetDissemination请求的时候,客户只需要关心行为定义的类型,而不必知道任何与行为实现机制相关的事情。由对象库在运行时动态地确定什么样的行为实现机制和这个数字对象相关,以及如何绑定到这个行为实现机制来完成这个GetDissemination请求。通过API-A访问对数字象内容如图17所示。
安全子系统使管理人员能够定义针对对象库的访问控制策略,提供了一种在运行时执行所定义策略的机制。主要功能模块包括策略管理模块(PolicyManagement)和策略执行模块(Policy Enforcement)。通过用户名/密码方案来确保API-M中操作的安全性。经过用户认证后,一个用户要么是被允许一个用户访问API-M中的操作,或是被拒绝访问API-M中的操作。而对于API-A中的操作,主要是通过允许访问的IP地址的范围进行保护。
存储层,实现对数字对象和数据流的存储相关功能,主要包含一个存储子系统,通过存储子系统管理对象库中所有数据的读、写、删除相关的操作。
在对象库内部,数字对象以XML文档的形式存储在文件系统中,这些XML文档符合METS规范。在数字对象的XML文档中聚合了一个或多个数据流,这些数据流主要分为:(1)由对象库所管理的内容和(2)通过URI引用的外部内容。由对象库所管理的内容包括Internal XML Metadata(X)和Managed Content(M)两种类型的数据流,而通过URI引用的外部内容包括Referenced ExternalContent(E)和Redirect(R)两种类型的数据流。存储子系统负责管理存储在对象库内部的内容,并且能够在运行时通过HTTP、FTP或者是网络文件共享方式访问远程资源获得外部内容。通过DOReaders和DOWriters方法可以对这些XML形式的数字对象信息进行读写。
为了能够对数字对象信息进行快速访问,在存储层基于关系数据库实现了 数字对象的高速缓存机制。在高速缓存中保存了数字对象的PID和关键系统元数据以及Dublin Core元素等。通过缓存,能够告诉DOReaders和DOWriters方法数字对象的信息存储在磁盘上的什么具体位置,实现API-A接口中对数字对象进行快速搜索。在存储层为数字对象的内容分发和对外部内容采取了相应的缓存机制。通过把面向对象的思想和理念引入在面向媒体资源的内容管理之中,把信息实体被抽象为数字对象,为实现聚合内容(数据和元数据)和行为(服务)提供了一个框架。
在数字对象中,数据流表示数字对象的属性,对外提供了数字对象的内容视图。在数据流中包装了在数字对象所聚合的各种类型数字资源的内容(为了区别于元数据,有时也称为数据),以及各种不同类型的元数据。在实际应用中可以根据业务的需要在同一个数字对象中包含任意数量、任意类型、任意形式数据或元数据。这些数据或元数据可以是存储在数字对象内部的资源,也可以是通过URI(Uniform Resource Identifier)引用的分布于网络的外部资源。当应用系统的需求发生改变时,只需对数字对象内部的所包含的数据或元数据进行适当的调整,这使数字对象具有较强的灵活性。
分发器是一种抽象,是数字对象中的部件。分发器包装了一组与数字对象的内容相关的服务(方法),通过调用它们可以实现对数字对象内容的操纵。服务请求的结果是一个字节流,称为分发,它是数字对象内部信息的一个视图。根据业务需要,可以任意增删或调整扩展数字对象的分发器,从而实现对新“内容类型”的支持,具有很强的灵活性。在分发器的定义中包含三方面的信息:行为定义、行为实现机制,以及数据流绑定映射关系。在行为定义中声明了分发器中所包含的所有服务请求(方法),等价于面向对象程序设计语言中接口的定义。在行为实现机制中实现了行为定义中所声明方法的可执行代码,等价于面向对象程序设计语言中实现了接口定义的对象。数据流绑定映射关系提供了数字对象中的数据流和特定的行为实现机制之间的映射关系,在调用分发器中的方法生成分发内容的过程中,行为实现机制需要对这些数据流进行处理。考虑到系统的灵活性、扩展性以及性能等因素,把行为定义和行为实现机制从分 发器的定义中离出来,分别存储于行为定义对象、行为实现机制对象中,而在分发器的定义中只是包含指向这些对象的URI。考虑到对目前日趋成熟的XMLWeb Services技术的支持,进一步把具体的行为实现代码从行为实现机制对象中分离出来,部署于应用服务器上。在行为实现机制对象中仅仅包含和这些服务相关的WSDL文档,在运行时通过XML Web Services技术动态的实现对服务的调用。
数字对象库是一个基于网络的存储系统,它为数字对象提供了运行环境,并向外提供了对数字对象进行管理和访问的相关服务。为了更好支持在数字对象库上快速开发出满足用户需求的应用,数字对象库提供出完整的API以满足各种客户端的开发。通过数字对象库提供的API,可以开发出面向各种不同客户需求的垂直应用,也可以支持应用开发商和客户开发自己的媒体内容管理应用。接口层构建于XML Web Services技术之上,对外提供对数字对象的管理服务、访问以及搜索服务,这些API了体现平台所有的功能,又遵循业界标准。
采用了数字对象这种抽象数据模型后,使得本发明媒体资产处理系统具有如下特点:
支持异构的数据类型,音频、视频、图片、文本;
适应不断出现的各种新的数据类型;
支持各种元数据规范(Dublin Core、MPEG7);
支持数字资源的保存与交换;
能够实现各种混合、分布数据的聚合;
能够实现同一数字对象的多种不同的内容分发;
提供分层次、分布式的系统管理;
提供基于XML Web Services技术的开放API,易于和其它服务集成。
因此以上具体实施方式仅用于说明本发明,而非用于限定本发明。