4.5.2.3XML处理
XML的一个重要方面是能够自动被解析和处理,而且还包含控制计算机上处理和执行命令的指令。查询处理对检索内容对象的信息很重要。链接被用来提供关于XML数据项目设置的关系信息。检索和链接是两个处理复杂信息的基本处理过程。定义特殊的XML链接语言(XML Linking Language, XLink)允许在XML文档中插入元素,它们可以被应用于生成和描述资源之间的链接。XLink提供的链接功能是根据全局属性定义的,它可以从其他命名空间链接到链接元素上。XLink和资源(即有地址的信息单元或者服务)相联系,链接从一个开始资源转换到一个结束资源。所谓的弧提供了转换链接的信息(如方向),它区别了简单链接(提供与HTML相似的超级链接功能)和扩展链接。在扩展链接中,其元素可以存储于有扩展属性的元素中,可能有加入链接的扩展源的专用号码。
XML路径语言(XML Path Language, XPath)通过指定XML文档的地址来定义XML结构的检索和转换,它提供对字符、数字和布尔计算的基本操作。根据XPath,XML文档由层级节点构成,节点树的根节点表示文档实体。树节点有不同类型,包括元素节点、属性节点和文本节点。XPath定义了一种为不同节点类型计算字符串数值的方法。
检索由根节点开始,根据XPath给出的方向进行。检索在文档的抽象逻辑结构上进行而不是在表面语义上。匹配模式的功能在检索过程中很重要(如检测节点是否符合某一个模式)。
除了XPath,还定义了XML查询语言(XML Query Language, XQuery)以支持存储在XML文档中的查询操作。XQuery用于不满足关系模型的文档,并能动态创建文档。XQuery使用的查询语言要能够用XML语法表示。
4.5.2.4XML和元数据
XML及其扩展提供了强大的构建结构和处理元数据的概念和工具。然而,XML并没有提供数据模型或者元数据参考模型。为了使用XML来处理和交换元数据,就需要定义这些模型,以MPEG-7为例,它使用了XSD的扩展版本。因此,定义了资源描述框架(Resource Deion Framework, RDF)用来表示有关万维网上的资源、简化交换、文档翻译以及元数据。RDF是一个描述任何因特网资源如一个网站和它的内容的普通框架,它提供了通用的框架来表示该类信息,但是没有定义词汇和描述参数(如标题和作者),它还指定了用于名称和描述参数的机器语言以及其描述的资源的类。都柏林核心是RDF应用于具体元数据模型的一个领域。
在XML中,信息可以被灵活编码,但对于元数据的交换和翻译还不够。这就要求具体的XML方案、描述框架以及能够用于编码信息参考的元数据参考模型。只有当XML、XML方案描述框架以及能够用于编码信息参考的元数据参考模型等系统同时应用时,才能进行这些系统之间元数据的交换。
4.5.3媒体对象服务器协议
媒体对象服务器(Media Object Server, MOS)协议是由联合印刷组织(Associated Press, AP)领导的工业联盟促使开发的。联合印刷组织的新闻工作室系统ENPS参与了MOS的联合制定工作。联盟的成员主要是参与广播系统的公司,其目的是发展一种开放式的工业标准以支持媒体制作,特别是新闻的制作及系统的整合。这样的系统包括:视频服务器、新闻工作室系统、自动演播室系统和内容管理系统。
该协议基本上是一个标记过的数据流,它指定了一个分类后完全定义好的XML消息集合,用来在MOS相关系统中交换信息。每个MOS消息以一个根标记“mos”开始,之后是ID和消息类型。其后面的数据也是标记的类型。除了定义消息类型之外,为了附加信息的交换,协议也支持XML标记的附加值。数据标记是英文格式,同时带有可以包含其他语言的描述性数据字段。对象描述限制于Unicode UCS-2文本,格式文本在非结构化的描述领域中是不被支持的。
MOS消息在新闻工作室控制系统(Newsroom Control System, NCS)和媒体对象服务器(MOS)之间以无方向的模式交换。消息必须被确认,设备在没有接到正或者负的确认信号时不能发送下一个消息。为了支持两个系统的双向通信,两个系统都需要添加NCS和MOS服务器。在NCS和MOS之间采用TCP/IP协议传输消息。
MOS协议概括了制作系统中信息交换的很具体的需求集合。它提供了一些可扩展的基本子集,但是并没有偏离(新闻)制作领域的需求。
4.5.4简单对象访问协议
简单对象访问协议(Simple Object Access Protocol, SOAP)是由W3C负责标准化的。它是交换结构化信息的轻量级协议,特别是在非集中的分布式环境中。SOAP最初考虑了网络服务,网络服务是可以使用标准互联网络协议和技术进行存取的互联网服务(如HTTP、XML、SMTP等)。SOAP已经成为在应用程序之间传递消息的标准化协议,它使用XML技术定义可扩展的消息框架。SOAP独立于其他任何程序模型和特殊句法。该协议本身并不处理如可靠性、安全性和路由等问题。SOAP使用简单的基于XML的消息存取,支持独立于系统和平台的信息交换。
SOAP标准指定了基于XML的信息交换信封格式和一系列规则,这些规则规定了如何用XML来表示应用程序和平台的数据类型。该信封包含一个可选的头和一个(唯一)主体。头由一个或者多个包含消息处理的信息块构成(包括路由和传递设置、认证信息和事务环境)。消息主体包括用XML语义编码的实际消息,它可以含有所需的尽可能多的子节点。XML消息必须结构良好、限定命名空间,它不应该含有任何处理指令和DTD引用。
SOAP支持两种基本的消息交换,称为请求响应消息和单向通知消息。前者用于远程过程调用(Remote Procedure Call, RPC),而后者用于文档传输等应用。对于RPC类的消息,呼叫方法以一个带参数模型的结构来表示,响应信息也模型化为一个单个结构,其中每个返回参数都有一个域,按照惯例响应信息以附带调用的方法命名。
SOAP交换模型的核心是一个由发送方到接收方的单向封装的传输。消息路径的中间系统在消息从发送方到接收方的单向传输过程中处理消息。然而,SOAP并没有指定路径本身和参数标准,比如提出用微软的WS-Routing协议建立消息路径。
SOAP标准的第五部分规定的编码风格定义了应用程序(可能在不同平台下)之间如何通讯,尽管它们的数据类型和表示方式也许不同。这些编码规则是可选的,是可以为事先不知道交换信息类型时的信息交换而定义的,此时有两个重要的概念:值和访问器。值表示了单个数据单元或者在同一个XML标签中的数据单元的组合。访问器是一个和值有关的元素。这种关系可以是直接的(同在多引用的访问器中一样)也可以是通过ID的。访问器的数据类型可以由三种方法确定:通过引用XML方案确定数据类型、通过引用XML方案文档为具体元素定义的数据类型、通过引用其他方案文档。XML方案数据类型由SOAP支持。尽管SOAP被称为对象协议,但它并没有对象和对象参数的概念,SOAP的编码规则指定了怎样在XML中表示对象。
作为一个封装协议,SOAP使用传输协议进行消息传送。此时使用的协议有HTTP、FTP、TCP、SMPT、POP3等,因此传输SOAP消息有很多种方法。然而,因为是处在网络环境中的关系,HTTP是目前传输SOAP消息使用最广泛的协议。将SOPA消息映射成HTTP时特别考虑了SOAP的定义,因为HTTP是一个基于请求响应模式的协议,所以SOAP到HTTP需要自然的匹配。SOAP的定义说明了SOAP消息交换模型如何以HTTP形式来表示,例如,SOAP Action的HTTP头在SOAP中进行定义,这表明SOAP HTTP请求的目标。但是将SOAP映射为HTTP时还有其他的问题要考虑,其中之一是使用80端口(HTTP最常使用的端口)的安全问题。另外,还要考虑到错误处理和递送等问题。