中间件可以分为两大类:一类是底层中间件,用于支撑单个应用系统或解决一类问题,包括交易中间件、应用服务中间件、数据访问中间件、过程调用中间件、消息中间件、对象中间件、安全中间件等;另一类是高层中间件,更多的用于系统整合,包括企业应用集成中间件、工作流中间件、门户中间件等,它们通常会与多个应用系统打交道,在系统中的层次较高,并大多基于前一类底层中间件运行。这里根据中间件采用的技术不同,大致划分为以下几种:
面向消息中间件(MOM,Message Oriented Middleware):面向消息的中间件能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发。这两项功能都是建立在消息队列(message queue)这一关键技术的基础上的。另外消息中间件不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。消息中间件适用于需要在多个进程之间进行可靠的数据传送的分布式环境。
事务处理中间件(TPM,Transaction Processing Monitor):与其他的中间件不同,事务处理中间件更加注重分布式事务的处理。这种中间件广泛地应用于数据管理、银行转账、定点分发等大型、分布式应用中,这些应用对物理上分散的节点之间的数据一致性有着很高的要求。TPM是针对复杂环境下分布式应用的速度和可靠性要求而实现的。它对外提供了事务处理的API,程序开发人员可以使用这个程序接口编写高速、可靠、基于事务处理的分布式应用程序。
面向对象的中间件(OOM,Object Oriented Middleware):随着面向对象技术的发展,出现了面向对象的中间件。对象请求代理(ORB,Object Request Broker)就是其中的一个典型例子,它可以看作具有与位置、协议和平台无关的中间件的特性。从管理和封装的模式上看,ORB和RPC有类似之处,不过ORB可以包含比RPC和消息中间件更复杂的信息,并且可以适用于非结构化的或者非关系型的数据。
【2】中间件在电子政务中的应用
2001年中间件在电子商务中开始应用,首先在电信行业全面启动,金融行业应用更加集中。中国软件产业也由于中间件产业的带动而从应用软件开发扩展到基础软件领域。2002年,随着电子政务的开展,公安、税务、交通、电力、社会保险、石化等行业中间件的应用迅速增长。电子政务系统所涵盖的业务及范围十分广泛,因而涉及的技术要求很高,需要考虑的方方面面的问题很多。值得注意的是,要使电子政务应用系统取得成功,关键是需要一个坚实的基础。过去的应用系统只注意了眼前的应用开发实现,而忽视了应用系统的发展所带来的性能问题、稳定性和健壮性问题、伸缩性问题、不同应用系统间的互联问题以及向更新的技术手段迁移等问题,因而导致了升级、扩容、改造频繁,不断补丁,破坏了原有应用系统的整体和层次架构,最终走入困境。所以在建立电子政务平台时,一定要充分考虑好系统延续发展问题,结合现有的实际情况,充分利用现有先进技术手段,提前为应用的未来做准备,做到应用系统结构层次清晰,兼顾原有遗留应用系统和新兴的技术应用,同时要保障新老系统间的无缝整合,这样才可以保障电子政务平台有序、稳步、健康地发展。
电子政务系统技术构架的选择是非常重要的。一般来说,构建省市级的政务系统需要具备以下特征:支持多层构架,表示层、业务层、数据库访问层分开;支持B/S和C/S两种结构的应用程序;独立于特定的硬件平台和操作系统;支持各种类型的数据库管理系统;良好的安全性;分布式事务功能;支持消息服务;支持组件化开发;支持集群和失效转移,提供良好的可扩展性和容错性;支持XML技术;支持Web Service和EAI等。目前建立的电子政务系统所采用的主要是两种相互竞争的技术构架,一种是Microsoft.NET构架,它是微软公司推出的一个系统构架,功能强大,具有良好扩展性及Windows平台上良好的运行性能。另一种是以J2EE为主的技术构架,它是实现企业级应用有关的各种技术规范的集合,对于跨平台的应用具有天然的优势,是开发可伸缩的、具有负载平衡能力的多层分布式跨平台企业应用的理想平台。在电子政务系统中,中间件的作用是举足轻重的。中间件在电子政务系统中的作用主要体现在以下几个方面:
①异构系统整合作用
在电子政务实施过程中,会遇到大量不同硬件平台、操作系统和应用之间互联互通的问题。中间件可以为应用屏蔽操作系统的处理细节,对不同的网络环境具有极强的适应能力,负责处理异构系统间的数据格式转换,使不同应用间的互联、互通、互操作成为可能,并且能够为应用提供统一的接口模式,使开发人员不必关心异构系统所带来的问题。
②数据通信的效率和可靠性保障
无论在何种业务模式下,保障通信的效率对提高整个业务系统的性能都具有特别的意义。电子政务中的公文流转、信息共享等业务都涉及大量的网络数据通信。中间件负责应用通信通道的建立和维护、数据的传输和校验、故障恢复、断点续传等工作以保障应用数据传输的可靠性。并且中间件在通信时针对不同的网络状况采用相应的流量控制策略,提供压缩功能以保障数据在不同网络带宽下的通信效率。
③系统的伸缩性和安全性
电子政务系统不是一成不变的,随着业务数据量的不断增加,将面对不断增加的业务压力。中间件支持应用系统正常运行下的应用、部门的动态增减、变更,它提供了一种简单快捷的解决方案,只要将多台机器配成服务器组,增加业务处理能力,就可以在多台机器间进行均衡负载的工作以适应不断变化的业务需要。中间件提供多个层面的安全功能,在通信双方可以进行合法性认证以防止非法程序使用;可以对用户进行合法性检查;对传输数据可以进行加密以防止数据失窃。
④系统开发和维护管理简单方便
要保障电子政务项目的顺利进行,需要使开发工作标准、清晰、简单有层次,把应用开发从烦琐的异构处理、故障恢复、效率保障等工作中解放出来,专注于业务的开发。中间件正是这种能够使应用程序专职于业务,而自身把其他应用系统的需求独立承担起来的产品。电子政务系统涉及的地理范围广,为了方便对应用和系统的监控管理,可以采用中间件的统一管理工具,在专门的管理机上由专人来进行统一的管理和维护,而且整个管理工作非常简单,界面也非常友好。
4节XML技术
【1】XML定义及产生背景
XML(eXtensible Markup Language,可扩展标记语言)是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。
XML同HTML一样,都来自标准通用标记语言SGML(Standard Generalized Markup Language)。早在Web出现之前,SGML就已存在。正如它的名称所言,SGML是一种用标记来描述文档资料的通用语言,它包含了一系列的文档类型定义(DTD),DTD中定义了标记的含义,因此SGML是可扩展的,用户可根据自己的需要,自定义适合文档所需要的标记。由于SGML十分庞大,既不容易学,又不容易使用,在计算机上实现也很困难,因此Web的发明者1989年提出了HTML语言。HTML语言只使用了SGML中很小一部分标记,同时为便于在计算机上实现,HTML规定的标记是固定的,即HTML的语法是不可扩展的,没有包含DTD。正是由于HTML的简单性,使Web技术从计算机界走向千家万户,使得网络的发展如日中天。近年来,随着Web的应用越来越广泛和深入,人们觉得HTML不够用了,HTML过于简单的语法严重地阻碍了用它来表现复杂的形式。于是Web标准化组织W3C推出了XML语言,希望能够取SGML之长,补HTML之短,实现了以下10个目标:
·能够直接应用于Internet
·能被各式应用软件使用
·能与SGML兼容
·能轻易发展XML的相关软件
·能简化SGML
·文件可读性高
·规范能尽快完成
·规范必须简洁
·文件易于建立
·语法不可模糊不清
XML是一种类似于HTML(Hyper Text Markup Language)且被设计用来描述数据的语言。XML的开发目的就是为弥补HTML作为web设计语言的不足。HTML中有一个大问题就是它的标记(Tag)集合是固定的,用户不能新增有意义的、能供其他人使用的Tag,无法表现出不同的语义,故数据源中丰富的信息得不到一种统一的表示,而XML却能完全胜任这份工作。XML要比HTML强大得多,它不再是固定的标记,而是允许定义数量不限的标记来描述文档中的资料,允许嵌套的信息结构。HTML只是Web显示数据的通用方法,而XML提供了一个直接处理Web数据的通用方法。HTML着重描述Web页面的显示格式,而XML着重描述的是Web页面的内容。同时,它是一种平台之间互相独立的信息技术,这便于制定信息语义的结构。利用这些特性,可以将不同数据库中的数据根据用户需要,制定意义明确的Tag,方便了同一组数据的重复利用。同时,由于对XML文档操作的过程具有跨平台的特性,数据库间的数据交换也具有了较强的独立性。
不同数据库间的数据共享的交换格式转换,是长期以来一直困扰数据库应用开发人员的问题。每种数据库都有自己特定的数据表示格式,为了数据的备份和转出,也都各自定义了一套数据的加载和卸载方法。但是,当一种数据库的数据要加载到另一种数据库中时,由于互不相同的数据格式和数据运行的操作系统平台而导致加载非常困难。人们解决这种问题通常的方法是自己定义一套特定的数据格式,将源数据库中的数据先以自己的格式卸载出来,然后再将这些数据加载到目的数据库中。这种方法没有统一的标准,同时,为了迅速完成自己的任务,对数据格式的定义通常是不规范的,基本上没有重用性。因此,造成了许多不必要的数据交换工具的低级重用开发,也导致了许多本来可以协调工作的软件由于数据格式的不统一而无法得到充分利用。通过XML语言完成各种数据库之间的数据转换,成为当前电子政务系统建设中不可缺少的技术。
【2】XML相关概念和技术
1.定义XML的结构——DTD,XML Schema
(1)DTD的概念
DTD定义的是一类文件的结构,使用正式的语法来定义XML文档的结构和允许值,保存了由设计者添加的、用于扩展XML核心规则的部分,并创建用来描述某些问题或状态的词汇表。其优点是:首先,通过创建DTD,能够正式而精确地定义词汇表。解析器可以利用DTD验证文档实例的有效性;其次,XML创作工具也可以通过类似的方法使用DTD,可以根据DTD中说明的结构规则,允许用户在文档中添加DTD允许的元素或属性。缺点是:首先,DTD使用自己的一套语法,与文档实例的语法截然不同,妨碍了利用DTD验证文档的有效性及将相应领域的信息传达给编程人员。应用程序无法了解DTD中的声明及其结构;其次,解析器没有动态创建DTD,解析器还不能根据情况动态创建DTD;再者,DTD是一种封闭的结构,当需要从其他DTD借用声明或结构时,DTD就有些局限性;另外,在数据类型信息方面也存在一定缺憾,不能将某些值表示为需要的简单类型进行恰当的操作。
(2)XML Schema的概念
尽管XMLI.0提供了一种机制(即DTD)来规范XML中标签的使用规则,但XML文档处理的自动化却要求有一种更为严格、更为全面的解决方案。这方面的需求包括:如何使一个应用程序的不同模块间能够互相协调及对文档结构、属性、数据类型等的约束等。Schema也是XML的一种应用,是将DTD重新用XML语言规范来定义。充分体现XML自描述性的优点。
2.显示XML——XSL,XSLT
样式表(Style Sheet)是一种专门描述结构文档表现方式的文档,既可以描述这些文档如何在屏幕上显示,也可以描述它们的打印效果,声音效果。样式表一般不包含在XML文档内部,而以独立的文档方式存在。与HTML描述数据显示方式的传统方法相比,样式表有许多突出的优点:
(1)表达效果丰富
目前,样式表支持文字和图像的精确定位、三维层技术以及交互操作等,对于文档的表现力远远超过HTML中的标记。样式表的标准规范独立于其他结构文档的规范,当需要实现更丰富的表达效果时,修改样式表规范即可,不会牵涉到原始的XMI文档内容。
(2)文档体积小
在实际应用中,常常给相同名称标记下的内容,定义相同的表现方式。使用传统的方法需要在每个标记中予以描述,造成大量的重复定义。而在样式表中,对于同一个标记只需进行一次描述就足够了,大大缩小了需要传输的文件的体积,可提高传输速度,并节约了带宽。
(3)便于信息检索
样式表可以实现非常复杂的显示效果,但由于样式描述与数据描述相分离,显示细节的描述并不影响文档中数据的内在结构。因此,网络搜索引擎对文档进行搜索时,不会被种种显示描述标记所迷惑。
(4)可读性好
样式表对各种标记的显示进行集中定义,定义方式直观易读。特点是易学易用,可读性、可维护性好。同时XML文档相对简洁、清晰,突出对内容本身的描述功能。