动态发布方法

2024-12-07

动态发布方法(共3篇)

动态发布方法 篇1

1 复杂武器装备对编辑IETP的需求

复杂武器装备的各项使用与保障活动需要大量的技术信息作支撑,交互式电子出版物(Interactive Electronic Technical Publication,IETP)是承载这些技术信息的载体。IETP应当在装备研制的同时进行编辑,这是因为,由设计人员说明自己设计的产品的结构、工作原理、使用维修方法、技术条件是最清楚的,这样做不仅提高了技术信息的准确性,而且减少了出版物编写的费用。但复杂武器装备常常由很多个厂家共同参与研制生产,不可能将所有的参与厂家组织到一起来编写IETP,最现实的方式是采用分布式编辑的方式共同编辑IETP。

同时,复杂武器装备也会随着相关技术的发展而增加或更新部分设备或仪器,描述该设备或仪器的技术出版物也必然会随之更新和修改。为了及时、准确的随着装备的更新而更新技术手册,实现装备的现状与技术信息同步,IETP要在分布式编辑的基础上实现动态发布这个问题显示得十分重要。

2 IETP分布式编辑的处理

IETP承载的是支撑装备保障活动的技术信息。由于信息的传递、交换、加工处理、存储、提取等操作都是通过对所谓信息载体的物质形式的传递、交换、加工处理、存储、提取来实现[1]。所以,实现IETP动态发布的实质就是运筹规划技术信息的处理。实现分布式编辑环境的有效方法是对技术信息进行模块化处理,采用元数据描述的方式对IETP中的数据模块进行描述,使之能够实现自我描述。

2.1 技术数据模块化的可行性

复杂装备技术手册中的技术信息可以实现模块化处理。这是因为技术信息可以分为两类,一是描述装备的静态数据,二是描述装备保障过程的过程数据。通常的情况下,IETP的静态数据大部分是装备的技术参数、几何参数、图形图例等,这些数据是可以根据其使用的目的划分为不同的类别。比如可划分为人员集、零件集、故障集、步骤集和描述集等等。而IETP中的过程数据是对装备保障活动中的静态数据进行整理、加工、组合而得出的知识。因此,装备技术信息从纵向上看是一个在逻辑上的序列,描述它的信息是过程性数据。而从横向来看,这些信息可以由不同主题的技术数据来反映,也就是说过程性数据可以拆分为多个静态数据,然后,通过组合、排列可以实现过程性数据的重现,如图1所示。因此,从主题角度来看,装备技术信息是一个离散的集合。这说明,IETP中的技术信息是可以按模块化进行设计和管理,而计算机最擅长的就是对离散数据的处理,数据模块化后可提高技术信息自动化处理的效率。

2.2 模块化技术数据的规范

S 1 0 0 0 D是一个以公共源数据库(Common Source Data Base,CSDB)为基础的IETP开发规范。它定义了能够实现自我描述的数据模块,并采取公共源数据库(CSDB)的形式存储这些数据模块。以达到实现数据共享的目的[3,4]。

S1000D规范提供了技术模块的结构。将数据模块分为自描述和内容两个部分,自描述部分由元素标识与状态部分标记,内容由标记,内部部分是装备保障活动过程中所需要的具体的技术信息。数据模块的结构模型如图2所示。

基于这个结构模型,IETP可在网络环境下,使用描述的编码标识、作者等自描述信息,对技术信息进行有效的提取、分析和集成,增加IETP的互操作性。

2.3 模块化技术数据的描述方法

XML将信息标签的定义留给了用户,在用户自定义的规则下,可对新事物或生僻事物可直接描述,满足了装备领域技术信息不断更新变化、技术信息按用户需求显示而造成的多样性的要求。

创建XML这种结构化的标记文档,首先要确立其元素和结构。国际规范S1000D给出了IETP中装备支持信息的所有标签名的词汇表,包括这些标签名的属性。以及各种内容的文档类型定义DTD或schema。词汇表和DTD(schema)得到TPSMG国际组织的维护,保证了词汇表随着装备的变化而变化的动态需求。

需要强调的是标签名是能够描述标签的内容的。以故障类信息为例:

在以上这个文档中,描述了故障这个元素。文档以标签名开始,以结束。其中包括了标签的属性fcode和其值“NYCJD04”。这些标签名不仅计算机能够读懂,IETP的编写人员也能够理解其中的含意。当然,在实施项目过程中,需要建立能够让IETP编写人员正确理解的词汇表(glossary)。

其次要建立各种数据模块的结构。D T D(schema)是一套关于标签符的语法规则,它定义了可用在文档中的元素、属性和实体,以及这些内容之间的相互关系。

图3给出了故障类数据模块的DTD结构示例。

这些结构是对装备技术信息的总结与抽象,创建航空宇航装备技术信息的XML文档时,需要建立和开发相关的系统,以帮助创作人员根据各种DTD,对照标签名进行元素内容的编写,实现半自动化处理。即完成技术数据与XML文档的映射,形成相应的技术信息。

3 IETP动态发布的实现

3.1 数据模块之间的链接处理

数据模块若只是生成独立的XML文档,还不能描述完整的装备保障支持信息。需要将各种XML文档按一定的逻辑进行排列组合,以完整的表达技术信息。文档中一般采用简单链接,在链接元素和目标资源之间建立关系。W3C建议标准对简单链接的定义如下:简单链接是一个正好联合两个资源的链接,两个资源中一个为本地,一个为远程,弧从前者走向后者。通过使用XLink中的元素和属性,可以建立数据模块之间的关系。

通过模块化处理技术数据后,将中性的源文件放置在公共源数据库中,根据装备维修保障的需求产生IETP。IETP的产生过程和动态发布处理流程可由如下图所示[5]。

3.2 数据模块的动态显示方法

XML可将数据及其显示形式分离,并能够使得数据在网络上传递,在客户端有效的显示,因此不受IETP显示系统的约束。W3C同样提出了扩展样式语言规范来实现不同样式的显示。XSLT即是用于XML文本的转换和格式化的标准语言。用一个样式单文件XSLT,XML文本的信息就可以转换成多种格式的输出,如HTML、WML、PDF、Plain Text等。为了满足多用户的要求,可以根据需要显示多种样式的界面[6],生成不同显示风格的IETP。

4 结论

将复杂武器装备技术信息进行模块化处理,并采用XML标记语言对数据模块进行描述,通过采用Xlink机制建立数据模块之间的链接,再根据XSL构造显示样式,这样就实现了数据模块分布式编辑和动态发布,达到了提高装备保障效果和减少装备生命周期费用的目的。

摘要:为满足装备的复杂化使得技术出版物由不同厂家编写,并且面临着因不断更新改装而随之更新的要求,文章在论述技术信息模块化可行性的基础上,采用XML语言对其进行描述,使技术信息具备自描述、内容和显示分离、可扩张、独立于平台的特性,从而实现分布式编辑和数据独立更改。为将模块化的信息重新发布,采用Xlink和XSL来实现技术出版物的动态发布。

关键词:复杂武器装备,IETP,动态发布方法

参考文献

[1]许国志,顾基发,车宏安.系统科学[M].上海:上海科技教育出版社,2000.

[2]徐宗昌.保障性工程[M].北京:兵器工业出版社,2002.

[3]高万春,朱兴动.S1000D下IETM的研究与实践[J].微计算机信息,2007,(23):6.

[4]李宗亮,姜莉莉.基于ASD S1000D标准的IETM制作研究[J].科学技术与工程,2007,(7):19.

[5]ASD/AIA S1000D.International Specification for Technical Publications Utilising a Common Source Data Base.ASD-AIA.2005.5.

[6]李宗亮.基于S1000D标准的IETM系统技术研究[D].广东工业大学硕士学位论文.2006.

动态发布方法 篇2

信息发布系统, 又称为网站新闻发布系统, 是将网页上的某些需要经常变动的信息, 如消息、新产品发布和业界动态等及时更新、管理, 并通过信息的某些共性进行分类, 最后系统化、标准化发布到网站上的一种网站应用程序。网站信息通过一个操作简单的界面加入数据库, 然后通过已有的网页模板格式与审核流程发布到网站上。它的出现大大减轻了网站更新维护的工作量, 通过网络数据库的引用, 将网站的更新维护工作简化到只需录入文字和上传图片, 从而使网站的更新速度大大缩短, 这对提高网站的影响力有非常积极的作用。

1 传统WEB编程的缺点

目前, 传统的基于WEB的编程存在下列问题[1]:

(1) 面向无连接的HTTP协议造成WEB开发局限。每一个页面请求均独立于其他页面请求, 所以多数WEB开发工具中对象生存期仅为单页范围, 页面间仅能够实现值传递, 还不能够做到面向过程语言 (如C, Pascal) 和面向对象语言 (如C++) 所轻易能实现的对象级的传输。

(2) 由于Object的有限支持, 当进行大型WEB项目开发时, 难以使用面向对象的系统分析建摸工具和程序设计方法。

(3) 现有编程技术对基于Internet的实时同步开发支持能力较弱, 难以形成基于Internet的协同开发。

2 系统开发技术

2.1 AS P.NET

ASP.net是一种建立在通用语言上的程序构架, 能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET不仅仅是Active Server Page (ASP) 的下一个版本;这还提供了一个统一的Web开发模式, 其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容, 同时它还提供一种新的编程模型和结构, 可生成伸缩性和稳定性更好的应用程序, 并提供更好的安全保护。可以通过在现有ASP应用程序中逐渐添加ASP.NET功能, 随时增强ASP应用程序的功能。

ASP.NET是一个已编译的、基于.NET的环境, 可以用任何与.NET兼容的语言 (包括Visual Basic.NET、C#和Jscript.NET.) 创作应用程序。另外, 任何ASP.NET应用程序都可以使用整个.NET Framework。开发人员可以方便地获得这些技术的优点, 其中包括托管的公共语言运行库环境、类型安全、继承等等。

2.2 NET框架

.NET框架是一个可以构造、发布以及运行Web服务的开发环境。从概念上讲, .NET框架平台代表了一种崭新的软件开发模式, 它与Win32API或COM一样, 是把系统服务以接口形式提供给开发人员的软件开发平台, 与以往不同的是, .NET框架能够更好地完成代码重用、资源配置、多语言集成开发和安全管理等任务, 在安全性、易用性以及开发效率等方面远远超过了以前的开发模式。

.NET框架是一个多语言组件开发和执行环境, 它由以下三个主要部分组成:

(1) 公共语言运行时:公共语言运行时在组件的开发过程中以及软件的运行过程中, 都扮演着非常重要的角色。

在组件运行过程中, 运行时负责管理内存分配、启动或取消线程和进程、实施安全性策略、同时满足当前组件对其他组件的需求。在开发阶段, 与现今COM相比, 运行时的自动化程度大力提高 (比如可自动执行内存管理) , 因而开发人员的工作变得非常轻松。尤其是, 映射功能将使代码编写量锐减, 这些代码是开发人员在将业务逻辑转化成可复用的组件进行编程时所需的。

(2) 统一的编程类:.NET框架中的类为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的类库集 (API) 。

(3) 高级版“活动服务器页面” (ASP+) :ASP+是使用.NET框架提供的类库构建而成的, 它提供了一个Web应用程序模型, 该模型由一组控件和一个基本结构结成。

2.3 ADO.NET数据库访问技术

ADO.NET是由NET.Framework提供的一组对象类的名称, 通过ADO.NET能使应用程序很容易地连接到数据源。

ADO.NET包括两个主要成员:托管提供程序和Date Set对象。托管提供程序是数据库访问的接口, 建立到数据库源的连接和存取数据, 包括Connection、Command、Data Reder、Data Adapter四个核心对象;Date Set对象用于存放一个或多个数据表, 表中的数据可来源于数据库、文件或XML数据, 它不依赖于数据库, 因此可以使用相同的方式来操作从不同的数据源取得的数据。

ASP.NET应用程序中, 通过ADO.NET访问数据库有两种途径:通过Command和Data Reder对象;通过Data Adapter和Date Set对象。结构模型如图1所示。

3 系统开发工具

3.1 Micros oft Vis ua l S tudio.NET开发平台

.NET开发平台包括以下内容:

.NET Framework (架构) , .NET Framework主要包含一个非常大的代码库, 可以在客户语言中通过面对对象编程技术 (OOP) 来使用这些代码。这个库分为不同的模块, 这样就可以 (下转71页) (上接22页) 根据希望得到的结果来选择使用其中的各个部分, 部分.NET Framework库定义了一些基本类型。类型是数据的一种表达方式, 指定其中最基础的部分, 以便使用。.NET Framework在各种语言之间进行交互操作。这称为通用类型系统 (Common Type System, CTS) 。除了支持这个库以外, .NET Framework还包含.NET公共语言运行库 (Common Language Runtime, CLR) , 它负责管理用.NET库开发的所有应用程序的执行。

.NET开发工具, Visual Studio.NET是一个包括Visual Basic和Visual C++在内的许多微软的流行开发工具经过改进后的开发工具软件包。包括:Visual Studio.NET Integrated Development Environment (IDE) (Visual Studio.NET集成开发环境) , 用来开发和测试应用程序, 在这个环境中, 开发人员可以建立各种语言类型的项目, 如Visual Basic、Visual C++、C#等;.NET编程语言 (例如Visual Basic.NET和新的VisualC#) , 用来创建运行在CLR下并且使用类库的应用程序。

3.2 Micros oft S QL S e ve r数据库

Microsoft SQL Sever数据库是微软公司开发的基于客户端/服务器模型的关系型数据库管理系统, 它在电子商务、数据仓库和数据库解决方案等应用中起着重要作用。

SQL Sever是一个具备完全Web支持的数据库产品, 提供了对可扩展标记语言 (XML) 的核心支持以及在Internet上和防火墙外进行查询的能力。

3.3 IIS的安装

IIS是Internet Information Server (网络信息服务) 的简称, 即在Internet上发布信息的Web服务器。IIS通过HTTP传输信息, 并将信息加载到网上, 配置IIS提供FTP服务, 以便信息的发布和资源共享。

4 结束语

本文阐述了利用ASP.NET和ADO.NET开发动态信息发布系统的实现技术和系统开发工具。他们是目前大多数网站常采用的技术手段之一, 具有简洁、高效等特点, 并且具有良好的可扩充性、可维护性等优点。

此外, 由于WEB特有的脆弱性和现在的计算机病毒以及黑客的恶意攻击, 网络安全问题在系统设计过程中也应考虑。

摘要:Internet是企业信息发布的一个重要平台, 很多企业建立了自己的信息发布系统, 他们都是以网页形式出现。这些网页内容单一、无交互性、实时性差。本文阐述了利用ASP.NET和ADO.NET实现动态信息发布方法与相关软件工具。利用该技术, 使程序与界面分离, 网页的维护、更新由专门人员在后台自动完成并支持搜索、评论、权限功能。

关键词:动态信息发布系统,ASP.NET,ADO.NET,.NET框架

参考文献

【1】张曾良.ASP.NET程序设计教程【M】.西安:西安交通大学出版社, 2006.

【2】Greg Buczek, MCSD.MCT.ASP应用开发指南【M】.北京:科学出版社, 2000.

动态发布方法 篇3

关键词:动态文档发布,自动测试,模拟

0 引言

对于大多数人来说,都会有这样的客户体验:去银行或者保险公司办理业务,或者接收他们的保单宣传,我们所面对和接收的都是一张张一样的表单,然后上面有一些空白的表格或者下划线,然后将客户的信息填上去。这样的做法有以下两个缺点:

(1)客户体验差。所有客户拿到的都是一样的表单,因为考虑特殊的情况,表单里面的空白的地方都会比较大,所以一般会出现大片空白的区域。

(2)对于每种不同的客户或者不同的业务会需要不同的表单,对于客户信息变动的情况,需要人工完成,比较繁琐。

为了更好的客户体验,越来越多的公司倾向于采用动态打印技术。这样每个客户接收到的文档或者打印件都是定制化的,这样就能克服以上缺点而做到:

(1)客户体验优。所有客户拿到的文档都是定制化的,表单里没有需要填空的地方,客户的数据都会被程序动态地植入表格模板里,就好像专门为客户定做的文档。

(2)我们可以在模板中定义一些规则,然后根据客户数据来采用相应的规则。例如,美国各个州的法律是不一样的,我们可以在编辑文档的时候就定义规则:如果客户是A州的,就用A条文,如果是B州的,就用B条文。这样当生成文档的时候,程序会根据当前客户是属于哪个州的,动态地加入这一段条文,而不需要人工的判定。并且,当客户从A州搬到B州,我们只需要更新一下客户的数据,客户下次就能拿到更新的正确的文档。

1 动态文档发布系统

有了如上的需求,很多公司都加入了开发动态文档发布系统的行列。对于动态文档发布,简单说起来,一般的步骤是:1)建立文档模板;2)运行时,装载客户数据进入模板;3)拼接文档;4)排版;5)输出前处理;6)输出成不同格式的文档;7)发布和归档。

动态文档发布系统可以使客户高性能制作并发送设计精美、高度个性化的沟通材料,从合同、保险单、大批量的账户关系维护通知单,到定制的推广资料、商业信函等。客户可以在该系统平台上,运用自己熟悉的文档开发软件,如Word、Adobe Indesign、Dream Weaver,开发出文档模板,并根据系统提供的插件进行逻辑的设置。然后,该模板就能被送往系统,跟随提供的客户数据而批量地生成客户需要的定制文档。接着,生成的文件可以通过不同的途径,例如,邮件、e-mail、手机短信等方式发送到客户,使客户有良好的用户体验。

2 自动化测试的要求

对于这样一个复杂的系统,它的主要客户是一些保险公司和银行,而它的主要产出是保单和合同。同时,合同和保单都是很严肃和很严谨的文档。客户需要的是他们的客户在客户数据没有改变的情况下,得到的是一贯的体验。

但是同时,动态文档发布系统本身又是一个不断发展和改善的系统。它拥有非常复杂的排版逻辑,并且每个版本的升级都会有大量的新功能和新逻辑被引入,这样的逻辑改变如果哪怕有一点点的差错,原来客户的整个文档可能就会面目全非。如果老的客户需要升级这些新功能的话,我们需要保证客户得到一贯的体验。也就是说,他们用旧的版本系统生成的文档和在新的版本系统生成的文档要保持一致,除非新的版本生成的更好,并得到客户的同意。

这样,为了达到上面的目标,我们需要在新版本发布前,运行一些老客户的文档(挑选一些很典型的客户文档),并且一个个和老版本生产的文档进行比较。但是我们不能把这个过程推到新版本发布之前才做,因为那个时候整个项目已经积累了很多的不同点,很难追查到源头并加以改正。所以我们需要把这个过程提前,并且频繁地去检查。

由于需要频繁的检查,并且文档的比较是个很繁重的体力活,所以自动测试将会是很好的方法,它不仅能够节省绝对的人力,而且能够保证绝对的准确,不会被人为因素干扰。

我们可以把这个自动测试集成到日常的打包系统中,每次打包后就可以自动地完成运行,比较和生成报告。

但是,我们不能在打包服务器上每次都去部署新的系统,因为那样太笨重了,并且会让环境问题和我们系统本身的问题经常性地纠缠不清。所以,我们需要自己建立一套轻量级的架构去承载这个测试过程:

(1)我们的系统是建立在基于应用服务器的EJB架构上的,并且EJB的主要操作是基于对数据库的操作,但是我们对于该自动测试的系统的要求是,对外部的依赖越少越好,因为这样的话,我们就能很方便地在各个相关程序员和测试人员以及配置人员之间进行部署和实施,所以我们希望他不要依赖应用服务器和数据库。

(2)我们要明确输入源和输出源,并且能够提供一些简单并且方便的配置,而且在很小代价的前提下,能够在不同的输入源和输出源之间随意切换。

(3)结果必须是可以有办法鉴别的,并且鉴别结果是能够很容易取得和方便查阅的。

3 设计方案

根据上面提出的三个要求,我们将通过分析我们的系统来提出我们的解决方案。

3.1 分析

对于这个系统来说,我们首先需要解决对于应用服务器,也就是对于EJB的依赖。为了达到这个目的,我们必须对系统的主要模块进行分析,来想办法如何解除依赖。

3.1.1 系统主要模块介绍

我们可以看看此系统的一个特别简化同时又很典型的流程:

首先介绍一下每个术语:

BDT:Business document template,商业文档模板。在这里我们定义一些规则,然后会跟客户数据关联选择具体的规则。

Customer Data:客户数据。XML格式记录特定客户的数据,然后根据这些客户数据,动态产生不同文档。

ASL:Assembly List,装配列表。由BDT和客户数据装载生成,里面记录的是一个个根据规则而选出来的最终文档片段(text piece)。

Text Piece:文档片段。在客户端定义,并存储在数据库端的文档片段。

MSO:微软自己定义的HTML格式Microsoft HTML,然后我们在里面加入一些我们自己定义的标记。

Styled Doc:式样文档。我们定义的一个格式,其实就是一些结构类,会对文档的各个内容、样式、布局进行描述。

DIF:Document Independent Format,独立文档格式。StyledDoc经过CE(composition)排版的结果就是DIF。它是一个页面级别的概念,告诉你什么时候生成一个新页面,多大,在哪里用什么字体写些什么字,在哪里放一个什么样的图片。

PDL:Page Description Language,页面描述语言。我们需要生成的最终结果,就是那些用页面来表示文档的语言,例如,Word、PDF、AFP、Postscript等等。

从图1可以看出,我们的EJB主要用在对数据库的操作上。对于数据库的操作,主要是对数据模板(BDT)的提取,

然后和本地客户数据进行整合,进而得出需要真正从数据库取出数据的组合(ASL),最后进行后面的排版(CE)、计算,生成各种不同类型的文档。

3.1.2 解耦数据库

既然我们要去除EJB和数据库的束缚,我们能不能绕过去呢?进一步分析,我们得到,数据模板在和客户数据装载(Assemble)后会在数据库里生成一个xml文件,用来描述最终会用到的具体的存在于数据库中间的文本片段。而这个xml文件,我们称之为ASL。我们试想,如果我们用一个办法,直接生成我们要用到的ASL文件,那么我们是不是就可以绕过EJB和数据库了呢?

答案是一半肯定,一半否定。首先,我们的确能绕过EJB的应用,它主要用于assemble这个阶段。但是光有ASL是没有用的,因为我们还需要通过ASL去数据库里取得所有的文本片段去做整合(Merge)。那么我们能不能把输入进一步地往后面推,推到Merge以后呢?答案是不能。首先来说Merge的输入也就是文本片段会有很多,他们之间的关系很复杂,这些都是记录在ASL里面,并且,Merge本身就是一个比较容易出问题的模块,是我们做这个Test Client要重点模拟和测试的模块,所以我们只能另想办法。

这里我们大概介绍一下通过ASL去数据库取文本片段的过程。这个过程其实比较简单,因为逻辑方面的运算已经在Assemble的过程中处理完成,这里的任务是根据ASL里面的一个个的文本片段ID去数据库里取出相应的数据来进行后续的流程。既然是这样的一个过程,我们决定尝试通过本地文件来模拟数据库记录。我们可以把数据从数据库里取出来,按照一定的规则,给它们命名为本地的一个个文件,然后在我们的测试框架中重载以前的去数据库取文本片段的方法为去本地的文件夹里取。这样的确是可行的,因为:

(1)我们的目的是验证我们的文档历史的保真度(Fidelity)的问题,那么我们的文档的文本片段是不会有所改变的。所以我们可以把它们放心转移到本地,而不用担心更新问题。

(2)文件放到本地,能减少传输上的消耗,并且如果把方法进行重载,是代价最小和最自然的一件事情,并且能最大限度地利用原来的代码。

(3)经过一些小小实验,我们发现经过很小的改动,我们可以把数据库的文件按照一定的规则改写到本地。这些都可以通过写一些小程序来实现。以后有新的文档,都可以用这个方法来实现,简单而易用。

3.1.3 输入和输出

在去除EJB和数据库的束缚的过程中,我们得到了我们的输入方式,那就是ASL+Text Pieces。输出文件当然很简单了,我们选择PDF,这个是我们主要的打印格式,当然,我们可以方便配置生成其它的格式文件,但是对于自动比较,由于我们现在的工具只支持PDF的比较,所以,对其它的格式文件输出,我们暂时不能提供自动比较。

3.2 框架方案

有了输入和输出,以及明确的需求,我们给出框架的解决方案:

图2自动测试框架(参见下页)

(1)把整个过程分为输入、过程中、输出、输出后。

(2)对于配置,采用XML,并且在XML里提供对输入、输出、以及中间的过程的配置。

(3)对于输入,我们定义一个接口,对于这个接口的实现将会是各个不同的输入方式,对于目前来说我们是支持ASL+Text pieces。但是我们以后会支持另外的输入方式。然后对于所有的输入接口,我们定义一个中心的中间输出,我们叫它IDoc。它实际上是输入和发布的中心,输入都要转成这个我们定义的中间结果,然后输出都需要从这个中间结果进行加工。

(4)对于输出,我们可以把它们同样配置在XML里面。并且对于最基本的输出例如PDF,我们可以把它作为默认的一个输出,而不需要每次进行配置。

(5)对于中间过程,我们配置了一些拦截器,这些拦截器以IDoc为中心,设置了publish前和publish后的拦截器,也就是说,在这里我们可以对publish前和publish后进行一些配置。比如,在开始前我们可以开始计时,结束后结束计时,这样我们可以测试一些效率方面的例子。

(6)对于输出,我们对于PDF输出,我们要实现它和自动比较工具的一个集成,也就是生成完PDF后,在配置要求进行比较的情况下,自动调用PDF比较工具对输出结果和标准进行比较,然后得出结果,并且生成HTML结果表格,然后通过Email给相关人员进行发送。

3.3 用例

当整个系统运行起来后,操作步骤如下:

首先,简单来说,我们会提供一些默认的XML配置,包括用例存放路径、输入方式、输出方式、发比较结果邮件会发给哪些人等等进行默认配置。因为这些东西会很少改动,当然改动的时候,我们重新配置就行。然后我们把需要运行的输入,即ASL+Text Pieces放到一个配置的路径里,然后用名字去区分不同的用例。然后我们通过XML配置我们的输入格式、输出格式,以及需不需要对结果进行比较、需不需要发邮件等等选项。当这些配置配完以后,我们给它起一个唯一的用例名,然后在程序里将这个用例名作为参数运行就能使整个过程自动完成。对于程序员,我们每次提交关键代码,都会先运行一下这个框架程序,然后查看自动生成的测试报告。如果发现问题,及时改正。而对于配置管理员来说,他们这个过程用ant工具配置在打包脚本中,然后我们就可以在每次打包时,自动地运行我们预先设置的用例。并且,生成文件后,程序会自动对生成的PDF文件进行比较,并将结果整理发出邮件。相关人员会通过Email收到比较结果,在上面可以通过超链接很方便地点选那些比较不对的文档,然后通知程序员进行改正。整个过程由于都是由机器在后台快速运行,少了人工的干扰,所以既提高了准确率,又提高了效率。

4 结论

由于文档发布系统的客户对于不同系统版本间文档一致性的高要求,使我们必须要提供一个长久的机制保证这个一致性。而要保证这个系统的一致性,我们提出了一个轻量级自动测试的方案。这里所说的轻量级,只是说该框架下运行方便,不需要受应用服务器和数据库的约束,但是理论它上提供了文档发布系统同样的功能和行为。实际上在整个过程中,我们尽量调用原先系统的程序,但是在解除对于服务器和数据库的依赖方面,我们通过仔细分析原来的动态文档发布系统各个模块的前提下,采用了用本地文件模拟数据库的方法,通过重载方法实现了对于数据库的解耦。该框架提供了强大的可配置功能,通过简单的XML设置,我们可以对整个过程进行配置,灵活实现不同的功能组合。

在未来,我们还会不断完善这个框架,例如会提供更多的输入选择,提供可视化的配置,提供尽量准确的诊断功能帮助程序员方便定位错误,并且根据动态文档发布系统的升级而相应提供更多的配置和功能。

参考文献

[1]刘寅虓.系统分析师之路[M].北京:电子工业出版社,2005.

上一篇:即插即用功率接口下一篇:未来城市与未来交通