基于XML的三层C/S模型在航空IETM中的应用研究
交互式电子技术手册(Interactive Electronic Technical Manual,IETM)是集武器装备或民用设备的设计、图纸、使用等数据以及故障诊断和维修等信息的电子出版物。它可以良好地解决传统纸张型技术资料使用和管理模式产生的耗时、费力、实效性不高且管理成本居高不下等问题,使武器装备或民用设备的完好性大大增强,提高故障诊断速度,减少维修人员的工作量,改善维修方法和过程。制作IETM最基础的工作是对技术数据进行处理,在这方面,美军和欧盟已发布了相关标准,建议用XML来描述这些技术数据。
1.XML技术概述
XML是eXtensible Markup Language的缩写,意为可扩展的标记语言,是由World Wide Web联盟组织(W3C)定义的元语言。XML是标准通用标记语言SGML(Standard Generalized Markup Language)的一个子集,与超文本标记语言HTML也有相类似的地方,但实际上它是针对SGML和HTML的局限性而创立的。简单地说,XML是一组规则和准则的集合,用于以无格式文本(而不是机器专用的二进制表达)来描述数据。技术上,它是一种语言,用于创建其他基于插入标记的语言以帮助描述数据。然而,XML实际上不只是标记。XML是标记和内容的组合,其中的标记将含义添加给内容。XML突破了HTML的固定标记集合的约束,用户可以根据需要定义任何一种标签来描述文档中的数据元素。它的基本思想是利用数据标识表示数据的含意,利用简单的嵌套和引用来实现数据元素之间的关系。
XML作为描述数据组织结构的标记语言,主要包含三个要素:DTD(Document Type Definition,文档类型定义)或XML Schema(XML模式)、XSL(eXtensible Stylesheet Language,可扩展样式语言)和Xlink(eXtensible Link Language,可扩展链接语言)。DTD和XML模式规定了XML文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素和元素属性之间的关系;XSL是用于规定XML文档呈现样式的语言,它使得数据与其表现形式相互独立;而XLink进一步扩展了Web上已有的简单链接。
2.Client/Server体系结构
美军的MIL-M-87268、MIL-D-87269和MIL-Q-87270以及欧洲航空工业协会(AECMA)的S1000D都详细规定了IETM的开发、应用与实施标准和方法。开发应用航空IETM时,我们考察了采用用户/服务器体系结构(Client/Server)的必要性。之所以采用这种结构体系,先进、性能、潮流等都不是问题的实质,真实答案来自对用户现在、未来和潜在需求的研究以及这种结构本身的特点与优势。
(1)非C/S结构的应用
航空装备IETM的开发,运用了多媒体、数据库和网络等技术,并且随着WEB技术的发展而呈现出不同的内容,主要的设计环节是:
①电子图像化:将原始设计图纸、器件外观等图形和纸张转换成数字式电子资料,以图片形式保存于数据库中,建立索引以方便查询;
②电子文档化:将所有说明书、技术文档等用文字描述的资料转换成电子文档格式,转换后的资料以ASCII或单纯文字为主;
③多媒体技术:将声音、图像、文本和录像、动画等资料用多媒体技术组织并保存,展现给用户使用,实现基本层次的交互;
④数据库支持:结合多媒体界面风格,将航空装备各寿命周期的各种数据和资料通过后台数据库来管理和维护,结合专家诊断、远程维护等形式,支持查询和统计等功能,实现通过单一系统获取多处信息来源的功能。
等级较低的IETM,应用传统的数据库体系结构,例如基于主机-多终端的系统,或基于LAN文件服务器运做的多用户系统,数据库属于应用程序“私有”,即使它也可以将数据文件放置在某台机器上供不同的用户共同访问,但所有的操作、规则都是在一个应用程序内部实现。应用程序因此具有最大的复杂性,即使是原班开发人员,要想对已有功能加以扩充也是很困难的,当数据库稍具复杂性(比如有稍多相互关联的表与规则),其他的人员开发另外的程序共同操作这个数据库的数据,几乎不具可行性。
(2)C/S结构的数据库应用
最简单的C/S体系结构的数据库应用,由用户应用程序和数据库服务器程序两部分组成。二者可分别称为前台程序与后台程序。在典型的C/S数据库应用中,数据的储存管理功能,是由服务器程序独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号不准重复、必须有用户才能建立这样的规则。
3.基于XML的三层C/S模型
三层结构是建立在C/S结构和分布式技术的基础上的,将业务逻辑从客户端分离出来移到一个中间层。通过对中间层的有效组织和管理,采用负载平衡、动态伸缩标准接口等技术,可以将客户机和服务器高效地组合在一起。这样,三层C/S模型就克服了两层结构以单一服务器和局域网为中心、系统难以扩展、维护成本高、软件移植性差等特点。从网络体系结构层次上看,基于XML的三层C/S模型可实现三种功能:
一是数据层:实现数据的集成,XML数据产生于IETM的多种数据源,但都以统一的XML格式表达传输。
二是功能层:IETM中有很多概念定义。通过对功能的分解而得到功能谓词,每个功能谓词代表功能的最小单元,实现数据的发送与处理,应用服务器通过HTTP交换数据,通过DOM处理XML数据。
三是表示层:实现数据的显示,XML数据的可以有多种表现形式,而且可以为外部直接访问、编辑或转换,也可被其他系统所用。图1为某型飞机航空IETM基于XML的三层C/S模型的基本原理。
(1)XML文档的生成
由于XML能够使不同来源的结构化的数据很容易的结合在一起,所以通过XML,可以在中间层服务器上对从后端数据库和其他应用处来的数据进行集成。然后,数据就能被发送到用户或其他服务器做进一步的集合、处理和分发。
当然,每个数据库描述数据都是不同的,但XML可以自己定义文件标签,例如:通过XML,航空机电系统就可以很容易以标准的方式按照所属分系统、产地、工作原理和其他的相关信息进行分类管理,便于用户查询使用。
(2)XML数据的传输与更新
通过HTTP,可将XML描述的数据像HTML一样传送。其中,中间层应用服务器将支持XML更新功能,将数据服务器上数据的变化及时地传递给用户。这就使得用户能及时得到最新的使用数据与统计资源,并将之传送到数据储存服务器上。
(3)XML数据在表示层的显示
XML数据在表示层可用多种方式显示。XSL(eXtensible Stylesheet Language,可扩展样式语言)是XML数据显示公布的机制,本地的数据能够以用户配置、选择或其他标准决定的方式动态地表现出来。
XML描述的是数据本身,注重的是数据的内容,其显示要通过XSL来实现。XSL是为XML文件定义的一种标识语言,以包含了一套元素集的XML语法规范而定义,该语法规范将被用来把XML文件转换成HTML文件或XML文档。
(4)XML数据的编辑与处理
在基于XML的C/S模型中,不但能够通过XML集合多个数据源的数据,并把数据源数据及时传输给表示层,而且,只要能理解XML数据,就能从用户层处理和编辑中间层的数据,然后通过中间层与数据层之间的数据刷新机制,对数据层数据进行刷新。
4.基于XML的三层C/S模型的航空IETM应用实例
以某型飞机仪表系统IETM为例,简要介绍基于XML的三层C/S模型。
(1)XML文档的生成
中间层通过XML获取数据源数据,生成XML文档。例如,在“航空仪表”中,其中每一设备的信息包括:仪表设备名、产地、工作原理、使用信息等。下面所列的就是获取数据源的一段典型例程。
<%@LANGUAGE=VB Script%>
<?XMLVERSION=“1.0”encoding=“GB2312”?>
< >
<%SetConnection=Server.CreateObject
(“ADODB.Connection”)
Connection.Open
Set ItemRecordset=Connection.Execute(“select*from item”)
Do while Not ItemRecordset.EOF%>
<航空机电系统>
<仪表设备名><%=ItemRecordset(“仪表设备名”)%></仪表设备名>
<产地><%=ItemRecordset(“产地”)%>
</产地>
<工作原理><%=ItemRecordset(“工作原理”)%></工作原理>
<使用信息><%=ItemRecordset(“使用信息”)%></使用信息>
</航空机电系统>
<%ItemRecordset.MoveNextLoop%>
</航空设备管理>
(2)XML数据在表示层的表达
航空装备使用人员不同,其所需的信息也不一样。例如飞行员关心的是仪表使用方式和读取方法,维修人员还关心仪表的工作原理和故障模式。所以,XML可以根据使用对象及其不同的应用要求而进行不同的显示。如下所示的XSL样式表,就是一个显示示例,将生成一个HTML文档,包括一个表格,其中的一行就为一个“仪表设备”元素。
<xsl:template match=“/”>
<HTML>
<HEAD>
<TITLE>航空机电系统</TITLE>
</HEAD>
<BODY>
<TABLE>
<xsl:for-each select=“航空机电系统”>
<TR>
<xsl:for-each select=“仪表设备”>
<TD>
<xsl:process-children/>
</TD>
</xsl:for-each>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
只要理解了中间层XML文档的数据,就能从任何地方处理和编辑数据。
5. 结论
在某型飞机航空仪表系统IETM中,基于XML的三层C/S模型的中间层一次性从远程数据库中获取满足用户所需的维修信息,生成相应的XML文档,显示在电脑、便携式辅助维修装置或打印文本中以供维修人员或使用人员参考。一旦把满足用户需要的信息组装起来以后,就以XML形式发送给用户,避免了用户与中间层的进一步交互。同时,丰富的XML数据发送给用户端后,用户应用和脚本语言就可以直接使用这些数据,这时用户端与中间层服务器之间连接就可以中止了。
运用基于XML的三层C/S模型,XML结构化的数据可以从商业规范和表现形式中分离出来,而且可以更详细地定义某个数据对象的数据结构,解决了信息标准化的问题。通过在三层C/S模型使用XML,使得用户之间可以通过网络,与其他装备使用者进行跨平台、跨操作系统的信息交换。