作者:吴上荣
摘要:本文研究了xmi技术的核心概念,提出了整合系统的xmi集成模型,并研究了其表达和处理,给出了基于xmi模型的异构系统之间的信息交换模式。工作流技术在异构系统的整合中,已经有很丰富的研究成果。本文将xmi/xml与工作流技术相结合,提出了基于xmi/xml技术的工作流模型,以用于异构系统的整合。
关键词: 系统整合 xmi 工作流技术
随着信息技术在企业的运营和管理中应用的不断深入,不同信息系统之间的大量信息交流使得系统接口越来越复杂而难以维护,成为信息建设的瓶颈,系统整合成为企业信息化建设的当务之急。本文阐述了利用面向对象的技术构建了企业的信息交换标准,结合工作流技术对异构系统进行整合。
用面向对象的观点来考察系统整合中的资源、信息和业务流程,并进行系统设计,有很大的优势。在异构应用之间交换元模型信息的国际标准是omg提出的xmi,它是uml与xml技术结合的成果。本文研究了整合系统xmi模型的表达和处理,提出了基于xmi模型的应用信息交换模式。
企业内部系统整合和重构也可以看成是一个业务流程重构(bpr)的过程。它的核心是整个企业内部作业和管理链信息流程的重新组织,如果考虑到企业外部相关企业和组织应用系统的整合,也可以认为是整个产业链信息流程的重新组合。工作流技术在这一方面已经有很丰富的研究成果,同时仍然存在着不足。本文将xmi/xml技术与工作流管理技术相结合,提出了基于xmi/xml技术的工作流模型,进行异构系统的整合。
1 基于xmi的面向对象信息交换技术
在系统整合过程中,应用系统一般都是异构的,在不同平台上的。因此要在它们之间交换信息必须有统一的交换开发环境的对象和信息的工业标准。在这个方面,对象管理组织(omg)制定了相关标准。操作性标准xmi最初是为了利用xml解决开发者在不同工具间交换资源的问题而提出的,并成为omg的推荐标准,成为开放信息模型交换的基础。[1]
xmi声明了一个开发的信息交换模型,使用面向技术的开发者可以在internet上以标准的方式交换程序数据,这为协同环境下的应用带来了一致性和兼容性。通过建立存储和共享对象信息的工业标准,使用不同工具的开发团队可以在应用级合作,允许开发者在web上交换应用、工具和存储的数据,创建团队开发环境的安全、分布式的应用。
xmi实现了uml和mof(meta object facility)基于xml技术的集成。xmi标准覆盖了uml模型的转换和mof的元模型。定义了标准的xml dtd实现uml和mof信息的交换。还将包括其他领域如数据仓库,基于组件的开放,web元数据等。xmi允许为元信息模型自动生成xml dtd。允许使用不同工具的对象技术的开发者在internet上共享信息。在应用系统的互操作性上有很大作用,xmi使得xml能够在不同的应用环境之间传递重要的模型信息。xmi是"流"标准,能够存储于文件系统或者从数据库、存储中提取出internet上传输的流。
xmi在现实中有巨大的应用价值。在internet上集成了这些技术,简化了不同开发工具的互操作性问题。例如,xmi使得rational的rose建立的模型可以转换为xmi文件,能够为oracle数据库和ibm的va for java,ibm db2,unisys等软件接受。通过知识库和数据库对xmi的支持,可以降低异构软件环境下互操作的时间和代价。xmi实现前所未有的知识库集成。存储,交换,提取数据,可以在大范围的开发中共享元信息,如代码,数据架构,数据管理等。
在系统整合开始时,各个参与方需要进行xmi的构建,也需要进行统一的xmi表达的构建。整合系统各个成员所采用的应用软件的模型是不同的,它们对于自己的类、对象等模型的表达也不相同。因此,在互相交换模型信息的时候,就需要有合适的途径来表达。在整合系统成员的模型信息交换时,xmi在表达元模型上的优势就表现出来,通过xmi对元模型的表达,整合系统的各种应用可以在同样的层次上进行模型信息的统一,从而构建出最终的企业xmi模型。
下图为整合系统中的一个实例。根据整合系统成员的摩托车的模型,生成xmi的模型表达。然后进行模型的一致性检查。在这一步对来自不同应用的模型进行统一,并且生成xmi模型。然后把经过一致性检查的xmi模型传递给下一步的应用,应用可以据此生成交换信息的schema。应用之间进行信息交换就是通过基于这些schema的xml文档或消息进行的。
图1 整合系统xmi模型的表达和处理
下面是上图中的摩托车模型的xmi表达代码。
<?xml version="1.0" encoding="utf-8"?>
<!doctype xmi system "motor.dtd">
<xmi xmi.version="1.0" >
<xmi.header>
<xmi.documentation>
motor model by xmi.
</xmi.documentation>
</xmi.header>
<xmi.content>
< motor >
< motor.make>jincheng</ motor.make>
< motor.type>jc125</ motor. type >
< motor.year>99</ motor.year>
< motor.color>red</ motor.color>
< motor.price>5000</ motor.price>
</ motor >
</xmi.content>
</xmi>
在集成了xmi以后,整合系统的信息交换进一步得到了优化。我们增加了xmi作为信息交换的元模型表达工具,进行一定的转换和映射,从而得到了更多的灵活性和工具之间的兼容性。如图。
图3 xmi信息的表达和处理模型
整合系统成员的应用所建立的对象模型首先通过xmi生成工具转换为xmi表达。这一局部的xmi模型与其他整合系统成员应用的xmi模型一起,应用uml的设计工具如rose等进行一致化处理,生成一致的整合系统xmi对象模型。同时,从一致化的整合系统xmi对象模型应用uml的活动设计工具,我们可以生成有效的整合系统信息流模型。在这一模型的基础上,应用uml的迭代开发模式,可以有效的开发出整合系统的xml信息服务器。xml信息服务器就是整合系统成员与外界进行信息交换的统一接口。
2 系统整合的工作流xml解决方案
为了应付包括市场在内的外部环境和内部成员的变化,整合系统必须保持自身调整的灵活性。工作流技术研究企业业务处理过程的自动化,对于企业应用系统的整合提供了很好的研究手段。本节结合xmi技术和面向对象技术,提出了一个整合系统的工作流模型。
2.1 工作流技术简介
工作流就是业务过程部分或全部地计算机化或自动化(wfmc)。换言之,工作流是为了达到一定的业务目的而根据一组定义的规则将文本、信息和任务在工作过程参与者之间传送的过程自动化。工作流也可以描述为业务过程(或事务处理过程)中信息和控制的流。
工作流管理系统(wfms)就是支持工作流运行的系统环境。典型的业务流程如贷款批准,索赔处理以及开具帐单,这些业务流程以工作流表示,即计算机化的业务流程模型,它说明了完成这些流程所涉及的所有参数。这些参数包括定义每个步骤(输入顾客信息,访问数据库,取得签名),建立各步执行的顺序及包括诸如步骤间的数据流等方面在内的条件,每步的负责者,以及每次动作所用到的应用软件(数据库,编辑器,电子表格)。因此工作流管理系统,wfms,就是用来定义、设计工作流流程和流程得以运行其中的环境的工具集,以及工作流流程涉及的用户和应用程序的界面。
图4 工作流的元模型
wfmc认识到一种通用的工作流定义模型能带来两方面的好处:(1)由某种工作流建模工具产生的工作流定义可以在多种工作流运行系统中执行(enact);(2)通过输出一种通用的工作流定义到其它工作流系统可以使工作流之间实现协作。为此,wfmc提出工作流的元模型(meta model)来描述工作流定义中的对象、对象关系和属性,以此形成一个工作流信息交换的格式集合的基础。图4是工作流的一个元模型,这个元模型是我们进行工作流管理系统设计的重要参照,它给出了重要的对象类别,以及对象类之间的关系。传统的工作流理论主要针对要解决的问题是共享与协作(sharing and cooperation),而几乎没有考虑性能、可扩充性和可靠性。不仅如此,目前的工作流研究针对单个制造业企业进行了相当多的研究,但是对于流通企业和跨多个企业的工作流研究则尚有不足。
2.2 整合系统工作流管理系统模型
要实现灵活有效的工作流管理系统,必须有一系列关键技术的支撑。这涉及到以下几个主要方面:a. 基于xmi的资源与对象定义技术。b. 基于规则的工作流引擎和监控引擎技术。 c.基于白板(共享工作台面)的信息交流技术。 d.基于 xml/xsl的规则定义和校验技术。e.基于xml server的信息处理技术。f.基于web的通信技术。等等。
xmi/xml系列技术与工作流理论结合的关键点是,应用xmi来表达工作流中的各种资源、组织、应用xml/xsl来表达流程的规则。
xmi表达资源的能力是通过它表达元模型的能力来实现的。采用xmi的表达可以保证无论是基于何种应用的资源都可以把它的资源模型准确的描述出来并以标准的xml语法提供给其它应用。
xml/xsl表达规则的能力则不是很明显。由于xml本质上是一种表示性语言而不是处理性语言,它在表达流程方面并不是很有优势。但是xsl和xpath等标准的发展给xml带来了变化。xsl也是遵守xml规范的语言,xsl的文档同时也是xml文档,它的最初设计目的是一种处理和转换xml文档的语言,即使用xml的语法来处理xml文档。但是在处理和转换xml文档过程中不可避免的要使用各种程序设计语言的语法结构,如if、when等等。这就给xml带来了过程描述能力。我们借助这种能力来实现xml/xsl对于工作流规则的表达。
下面我们给出一个xsl表达规则的实例。
<xsl:choose>
<xsl:when test="motor[@price>2000]">
<xsl:element name="dispose_process">
<xsl:attribute name="dispose_type">special_approve</xsl:attribute>
<xsl:attribute name="order_no">
<xsl:value-of select="motor/@order_no"/>
</xsl:attribute>
</xsl:element>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="disposer">/moter_store</xsl:variable>
<xsl:template match ="motor">
<xsl:element name="order_dispatch">
<xsl:attribute name="disposer">
<xsl:value-of select="{$disposer}/sales"/>
</xsl:attribute>
</xsl:element>
</xsl:template>
<motor price="2500" order_no="011204"/>
在上面的例子中,xsl模板通过对xml订单文档的解析,生成对该订单的处理指示文档并且附加了相关信息。这一处理指示文档可以发送给相应的处理方,依据它来完成订单的处理工作。以下是一个基于xmi/xml技术的整合系统的工作流模型。如图。
图6 基于xmi/xml技术的整合系统的工作流模型
上图所示的模型基于xml技术,以工作流引擎为核心,客户端和服务器端都采用web技术进行通信。工作流引擎是实现工作流调度的关键部分,我们采用了facilitator来实现它。facilitator所使用的推理规则是通过基于xml/xsl的规则生成工具来提供的。这些推理规则采用xml/xsl表达,存放在行为规则库中。规则生成工具还提供了编辑监控规则的手段。这些监控规则也同样采用xml表达,存放在监控规则库中。采用xml/xsl表达规则编辑的意义还在于,由于xml技术是标准的信息交流语言,支持它的工具越来越多。采用xml语法表达的规则将可以为众多的第三方校验工具所理解和兼容,也可以为各种其他应用接受。[2]
监控系统采用agent来实现。它和工作流引擎都可以感知运行环境(白板)的变化,从而决定自己的行为。触发工作流引擎动作的可以是客户端的应用程序动作,也可以是客户端的请求通过服务器端的处理程序来触发。[4]
我们使用一个xmi资源生成工具来对企业的资源进行表达。这个生成工具可以是直接使用xml的编辑器来实现,也可以采用图形化的界面让客户进行设置,然后生成xmi格式的资源描述。xmi资源库和xml/xsl行为规则库、xml/xsl监控规则库都应该使用面向对象的xml数据库存储。
工作流引擎对于事件的处理是通过调用服务器端的xmi资源库来实现的。这些资源库可能是来自于封装后的legacy系统。通过xmi的封装,我们可以形成xml服务器,接受引擎的调度。此外,我们使用xmi表达的资源和服务是开放的,通过web它可以为企业外的其他合法的客户端提供服务。注意到xmi的资源表达是可以为大量工具理解和接受的。[3]
通过基于xmi/xml技术的整合系统工作流模型,具有以下的一些优点。
1. 目的驱动。保证任务的完整性,正确性,时间限制,健壮性,服务质量是通过提高监控系统智能化来实现的。利用xml编辑工具可以编写出监控系统所遵循的规则。而这些规则可以通过petri net和自动机等工具进行验证[18],从而可以做出达到对于各种情况的正确处理方案,需要指出的是,虽然监控规则采用xml描述,但是xml editor完全可以也应该是可视化的,还可以利用rose等工具来验证模型的正确和有效。[5]
2. 建立于业务过程处理模型上。整合系统的工作流管理系统通过使用xsl技术来实现业务处理模型。xml不具备足够的工作流描述能力,它对于例如条件等问题无法描述,但是xsl语言对此提供了很好的补充。工作流管理系统通过利用xsl语言很好地支持了支持企业的业务处理模型。
3. 和组织模型集成。xml语言的结构化特点非常符合描述企业的组织模型的要求,并且xml的可扩展性对于组织模型的灵活重构提供了强有力的支持。因此采用xml/xsl技术来构造行为规则/监控规则库可以综合解决前述问题。
4. 降低应用复杂性。xml/xsl规则本身是机器和人同时可读的,规则可懂度和结构化的提高使规则的表达和处理都得到了简化。
5. 通过开放标准,保证了系统之间的互操作性。互操作性实际上是可以通过制定标准来实现的。有信息交流标准后,系统间的交流就从两两对应转换变成了通过向标准的映射来实现转换。通过企业xmi/xml信息交换标准的定义,规定了信息系统交换的语义和结构模型,从而达到了高度的标准化和互操作性。
3 总结
将xmi/xml技术与工作流管理技术有机结合,对系统地敏捷整合带来非常大的好处,保证了系统的互操作性。工作流在实质上需要的灵活性正是xmi/xml等整合系统技术的长处。因此它们的结合有很好的效果,也是自然和容易实现的。
参考文献:
[1] j.e.robbins, d.f.redmiles. cognitive support, uml adherence, and xmi interchange in argo/uml. 79-89. information and software technology 42(2000).
[2] a.h.m. ter hosftede, m.e. orlowsja, j. rajapakse. verification problems in conceptual workflow specifications. data & knowledge engineering 24(1998) :235-256.
[3] defining the semantics of reactive components in event-driven workflow execution with event histories. information system 1998, 23(3):235-252.
[4] robert j. glushko, jay m. tenenbaum, bauer meltzer. an xml framework for agent-based e-commerce. communications of the acm. 106-114. march 1999/vol42.no.3.
[5] w.m.p. van der aalst and a.h.m. ter hofstede. verification of workflow task structures: a petri-net-based approach. information systems, 2000, 25(1):43-69.
