1引言
企业信息化的逐步深人,在企业内部以及企业之间必然存在着大量异构信息的交互和共享问题。对于一个具有多种应用系统的企业来说,各系统中数据的交换与信息的集成是至关重要的,只有实现了各信息系统的集成,才能真正实现企业的信息化。数据信息系统的交换与集成,是一个企业信息化的基础,没有对企业现有的各种应用信息系统的集成,企业中的各种数据信息系统,只能是各种自动化和信息化的“孤岛”,不能共享各系统的数据,不能对企业的整体业务流程进行统一的管理,特别是对于设计制造业来说,更是如此。同时,企业必然要与外部企业进行数据的交换和共享,企业之间数据的交换和共享也需要一种工具来帮助不同企业间的数据交换,对于企业之间和分布式企业的数据交换和共享,国际标准化组织W3C推出了可扩展的标记语言(extensibleMarkupLanguage,XML),语言,着重描述Web页面的内容和直接处理Web数据的通用方法,用于实现网络上信息的共享和交互,基于XML的信息集成,已成为国内外学者研究的热点。
目前,巳有不同的企业信息化集成平台,有的以ERP系统,有的以PDM系统作为系统的集成框架工具。不过,这些系统多为商业化系统,不仅价格昂贵,而且实施周期较长。对于企业现有的业务系统如人力资源、财务、客户关系、办公自动化系统、各种计算机辅助T.程系统等,又急需要将已有的这些系统进行集成,以达到对这些信息“孤岛”共享和交互,避免不必要的资源重复建设。本文提出了一种基于Java与XML技术的异构系统数据的集成框架结构,同时给出了基于该框架结构的实现方法。
2Java与XML技术
Java语言是一种流行的面向对象的编程语言,同时具有一系列的面向对象程序设计规范,由SUNMicrosystems在20世纪90年代中期开发。它是一个基于Java虚拟机(JVM)、与操作平台无关的执行模型,由于具有“一次编写,到处运行”的特
点以及作为Web应用程序的编程语言而很快地被广泛接受。与C++不同,Java类定义放在一个单独的自含式文件中,既没有单独的头文件也没有执行文件,并且Java语言基本上没有定义的次序相关性,在出现方法体时,它总是紧随方法特征声明之后定义;此外Java语言缺少集成处理器。这些特性合在一起,使Java源程序在语法上很简洁,从而使Java语言成为使用XML表7K的最理想的语言。
一般来说,XML有助于独立平台、易于提取信息的文档和数据,是数据交换的标准;而Java有助于独立平台、易于处理的面向对象的应用软件解决方案。在Web应用中,Java使浏览器工作时就像在通用的应用平台上,而平台与平台之间是相互独立的。在HTML语言中,由于固定的Tag集合和HTML语义上的贫瘠,使Java的应用受到了极大的限制。而且,由于在HTML中不同的语义无法表现,故数据元中丰富的信息得不到一种统一的表示,但HTML却能很好地解决这个问题。
XML的应用大致上可以分为三大类:
(1)简单数据的表示和交换(针对XML的简单API(SAX)和文档对象模型(DOM)语法解析,不同的文档类型定义(DTDs)和概要(Schemas))0
(2)面向消息的计算(XML-RPC(远程过程调用),SOAP协议,电子化业务XML(ebXML)),
(3)与用户界面相关,表示相关的上下文(可扩展样式表语言(XSL),可扩展样式表语言转换(XSLT))。
这几类应用在J2EE(Java2Platform,EnterpriseEdition)架构中恰好有天然的对应,数据表示和交换功能是EJB组件模型中持久化服务(PersistenceServices)的一部分,基于消息的通信由Java消息服务(JMS)API来处理,而界面表示正是Java服务器页面(JSP)和JavaServlet最为擅长处理的。
3异构应用系统数据集成框架
异构应用系统是指在不同的硬件的体系结构和操作系统平台(Windows,UNIX,Linux)以及网络数据库系统上运行的各种信息系统与辅助工程系统(如CAD/CAM/CAPP等)。信息系统集成的含义是指将基于信息技术的资源及应用H十算机软硬件、接口及机器)聚集成一个协同T作的整体,集成包含功能交互、信息共享以及数据通信三个方面的管理与控制[1]。从信息系统集成的角度来看,在应用系统之间的数据交换与集成有三种基本的方式,即应用封装、接口集成和紧密集成。
集成平台与集成框架技术是在20世纪80年代末90年代初,随着企业信息集成与系统集成复杂度的提高,采用常规的集成方法已难以适应集成的要求,于是作为先进的应用集成T具,集成平台与集成框架技术就应运而生。目前企业应用集成有几种不同的技术规范,大都采用面向对象和分布式技术,如分布式计算环境、面向对象分布式处理、C0RBA规范和OLE/COM、.NET技术和J2EE技术规范以及产品交换标准STEP和数据交换标准XML等。
本文提出的异构应用系统集成框架采用的是面向对象的Java和XML技术,其集成框架结构如图1所示。整个集成框架采用三层体系结构,从上到下分别是:企业客户、企业集成中间件和企业异构应用系统。
(1)企业客户是集成框架的顶层,该层是企业异构应用系统数据对企业用户的表示。企业用户提出请求,通过中间层传递到底层的异构应用系统,数据的返回也借助中间层集成中间件将数据返回给用户。在企业客户层的应用工具是各种浏览器以及Java应用程序和JavaApplet小程序。
(2)集成中间件是集成框架的中间层。它是该集成框架的核心层,它由JavaServlet/JSP引擎、Web服务器、XML集成服务器、名字目录服务器、XML适配器和JDBC/ODBCBridge适配器组成。它们各自的功能分别是:①Web服务器接收浏览器的请求,同时将请求转发给JavaServlet/JSP引擎,JavaServlet/JSP引擎处理JavaServlet和JSP程序;②这些程序从XML集成服务器获取XML数据,集成服务器将请求与响应数据文件的名字存人目录服务器,以便检索;③名字目录服务器同时管理企业的用户和客户以及企业的各种资源;④XML适配器负责从JDBC/ODBCBridge适配器获取数据,负责将各异构应用系统的数据转换成可以交互的格式,即XML格式,它的标准语言是XML,为应用业务的开发提供了标准的XML接口,这使得开发者不必再去区分是对数据库操作还是对XML文档进行操作,只要统一地针对XML方式进行开发即可。这样,有关数据交互的应用程序开发就会变得非常简单。
XML集成服务器是该层的核心,它处理业务规则和表示规则,利用DTD和Schema定义集成规则,实现在异构应用系统之间的交互和共享工作。同时,XML集成服务器使用XML技术使我们可以将数据与业务逻辑的表示以及运算分离开来,从而使数据可以有多种多样的表现形式,如关系数据库中的“项”、对象数据库里的“序列化对象”、各种统计图表、大量的专用单据等。在分布式环境下个体的情况千差万别,数据的记录、存储方式也是各有千秋,为了更好地进行数据的共享,本文提出了用XML技术把数据表示成与系统、与应用无关的形式。
(3)企业异构应用系统。该层是各种企业异构应用系统,其存储采用不同的存储结构。这些应用系统的存储单元彳I可能是异构的(Heterogeneous),如图1所示,它们有MSSQLServer,Oracle,Access等主流的商业数据库系统,甚至有XML数据库,由这些异构的数据管理系统支撑应用系统。
本文提出这个新的异构应用系统数据集成框架,采用的是Java和XML技术,把Java和XML技术组合起来可以创建具有高度平台独立性的分布式数据交换和处理系统。
4框架结构的实现关键技术
上面提出的异构应用系统数据集成框架的实现过程主要有三个方面的关键技术需要解决,即XML表示的数据库、XML文档与数据库之间的转换、XML集成规则的表示。
XML数据库表示
许多应用都是基于数据库基础的,但是建立和维护一个数据库的成本较高,并且通常需要有专业的知识,而对于Imernet的用户来说,在某些情况下,根本不必使用真正的数据库,甚至不便使用真正的数据库,因此完全有必要引人一种新的数据存储模式,使它能简单高效地对小规模数据进行管理。为此,引入XML对数据库进行如下的描述:
《?xmlversion="1.0"?>
《tablename="xmltb">
《rowid="1">
《usernametype="varchar">Tiger〈/username>
《rowid="100">
《usernametype=ffvarcharw>Scott</username>
《/row>
《/table>
不难发现,使用XML来描述一个数据库不仅可以记录数据本身,而且可以准确地描述数据的结构,sr元数据”。另外,众多的XML工具和API的支持也使得对XML文档的应用变得非常简单。
XML适配器API的设计
这里所说的API是指完成XML文档与数据库数据之间相互转换功能的软件包,我们采用SAX和D0M这两类API来处理XML文档,而与数据库的接口使用JDBC和JDBC-ODBC。
.SAX是一个事件驱动的XML软件开发包接口,当一个XML文档被处理时,支持SAX的XML解析器就会告诉我们有关事件发生的情况,诸如元素的开始、元素的结束等。但是它不会构造新的内部结构,不能用来进行随机访问,比较适合处理流式文档。
D0M接口可以创建一种类似树状的结构,元素之间可以存在父子关系。使用这种API,XML解析器就类似遍历一棵树一样处理XML文档,它比较适合于随机访问,但是会增加内存的开销。
我们构造以XML为描述语言的企业应用集成中间件,然后在异构应用系统之间进行交换和共享,在从数据库到生成XML文档的方向上,利用的是DOMAPI;反之,在将数据从XML文档填人数据库的方向上选用SAXAPI。因为需要先从JDBC的结果集中获取数据,然后才能生成XML文档,由于所有的内容在构造XML之前已经被了解,所以就可以采用一种插人的方式,这时选择DOMAH会十分方便。而在处理XML文档向数据库的转换时,我们需要从头到尾一边遍历XML文挡,一边提出数据填入数据库,此时,显然应该选择SAXAPI了。
XML集成规则的表示
XML是异构应用系统之间数据交换和共享的桥梁,在XML中则需要DTD(文档类型定义)模型,来帮助异构应用系统之间数据元素的定义,其定义规则根据各异构应用系统之间数据的关系建立规则表示。
5应用实例
根据前面的框架结构,利用XML集成规则和适配器API,建立了基于Web的面向异构应用系统的XML集成适配器工具,作为一个主要的支撑工具模块,在基于PDM技术项目管理系统中得到了应用,解决了该项目管理系统的项目计划数据与微软的MSProject2000的数据相互导人和导出功能,实现这两种异构应用系统数据信息的共享和交互问题,通过应用XML集成规则DTD模型与XML文档的绑定,完成异构应用系统之间数据信息的共享。而且我们能从这些系统中提出项目计划数据用于完善项目的甘特图和网络图的绘制,通过XML集成适配器工具,提取系统数据,利用JavaApplet绘制各种图形;同时能够提取系统的资源数据,将数据导人到微软的OfficeExcel中处理。
6结束语
对于企业的信息化来说,异构应用系统之间数据的共享和交互是十分常见的。Java的与平台无关,“一次编写,到处运行”的特点;XML文档的结构化和自解释性以及与应用无关的特性,它们是“基于Java和XML的异构应用系统数据集成框架”的基础。对实现该集成框架的关键技术进行了分析,通过一个应用实例,说明此集成框架结构的有效性,此集成框架结构为企业信息化集成提供了一种有效的方法。