摘 要 本文在解决远程开放教育系统的信息孤岛问题的基础上,总结出了一个通用的主题数据平台架构。并进一步针对它在不同的环境、采用不同的策略,给出了实现框架。
关键词 soa;数据平台;信息暴露
1 引言
本课题来源于中央广播电视大学教务管理系统的后续开发。随着中央电大在开放式教育思想指导下的教学改革的展开,系统业务量急剧猛增,原有的教学管理系统已经逐渐的满足不了应用需求。所以新一代教学管理系统正在开发中,同时由于教育业务本身的连贯性,导致了新旧系统并行的局面出现。但是由于新旧系统间缺少关联和通信以及必要的规范,导致信息“孤岛”现象严重,而旧系统又恰恰是电大不可放弃的重要投资。同时由于各个系统集成度不足,运行业务的数据库和应用程序也是在不同时期部署的,它们来自不同的供应商,使用各不相同的定制技术。从而面临着如何构建一个强壮的、可靠的,将新旧系统中的分散功能组织成可共用的标准服务来满足业务要求的平台,成为我们需要研究的难点。
通过实践我们可以发现,应用程序始终都与数据有关,企业级的服务程序更是如此。Www.133229.cOM今天,企业应用程序开发中有高达70%的时间都是用于访问不同的数据。因此,对企业信息和数据按业务逻辑进行梳理和抽取,形成企业数据的统一表现实体,该实体可以在全企业范围内得到一致性的使用,是迈向面向服务的体系架构的第一步。因此我们提出了主题数据平台的概念。
2 主题数据平台结构
主题数据平台结构见图1。主题数据平台由:主题数据服务层、数据处理构件、数据处理管道、适配器构件组成。
图1 数据主题平台的设计构架
主题数据服务层:是底层接口与上层应用的中间层,用于屏蔽底层接口,向上提供统一的服务。有两种角色:一种角色是数据中转站,用于保存临时数据,并等数据传输完整之后,进一步对数据进行分析和处理;另一种角色是主题数据服务层角色,用于保存数据处理的最终结果:主题数据。
数据处理构件:是数据处理的基础构件,每一个数据处理构件都封装了一部分相对独立的数据处理逻辑,包括删除不需要的数据、补充缺少的数据、对数据进行简单的四则运算、代码转换和按主题建立新的数据结构等功能。
数据处理管道:是由多个数据处理构件组成,它合理的组合和安排这些数据处理构件,从而完成复杂的数据处理逻辑。
适配器构件: 用于实现异构数据库与数据处理管道的无缝连接,从而能够方便的从异构数据库中抽取或插入数据。
3 基于局域网的主题数据平台的实现方案
基于局域网的主题数据平台的实现方案见图2。
图2 基于局域网的数据主题平台的实现方案
由于局域网有着:网络传输速度快、网络故障率低、即时性强、服务器固定等优点。所以我们采用:dts技术、nmake技术、临时库等技术来解决基于局域网的主题数据平台的实现问题。
3.1 dts技术的应用
采用dts技术可以实现在局域网中从异构的数据库中提取或插入数据,并能对数据进行简单的逻辑操作。它可以把相对独立的数据处理逻辑封装在对应的dts包中,从而把公用的数据处理逻辑从数据处理业务中提炼了出来,以备复用。并提供了工作流支持,保证了dts包中数据处理业务的事务性和完整性。
⑴ 适配器构件
适配器构件只是一个数据处理通道和异构数据源的连接器,它负责从异构数据源中抽取或者插入数据并将数据转移到数据处理通道中。每一个数据源对应一个或多个适配器构件,每个适配器构件包含在对应的dts包中。整个dts包中包含一个原数据源、一个目标数据源和一个数据对应转换任务。将整个数据转换逻辑封装为一个构件,有利于适配器构件的复用。
⑵ 数据处理构件
数据处理构件封装了数据处理逻辑,这些处理逻辑由数据业务驱动,包括删除不需要的数据、从不同的数据来源补齐缺少的数据、对数据进行简单的四则运算、不同信息系统之间的代码转换等功能。数据处理逻辑按其独立性和公用性被封装在不同的dts包中,增强了数据处理构件的可变性和复用性。dts包提供了验证机制这既可以保证数据处理逻辑的正确性,又可以保证数据处理逻辑的事务性。dts包内包含工作流,可以针对不同的情况做出不同的处理,极大地提高了数据处理构件的复用性,并可对业务性错误做出必要的处理。
3.2 nmake技术的应用
microsoft程序维护实用工具nmake 是一个 32 位基于说明文件中包含的命令生成项目的工具。nmake具有丰富的选项,可以完成复杂的处理操作,并有树状文件任务处理结构,并且易于编写,结构清晰,对于实现复杂的数据处理业务提供了很大的方便。采用nmake技术可以有效的将结构松散的、相对独立的数据处理构件聚合起来,从而能够处理复杂的数据处理业务。
数据处理管道
数据处理管道是将数据处理构件有机的组合起来并封装好,对主题数据服务层提供统一的访问接口,从而把数据服务逻辑与数据处理逻辑分割开来。数据处理管道可以极大地提高数据处理构件的复用率,并把复杂的数据处理逻辑从数据处理构件中抽离了出来,当数据处理业务变动的时候不需要修改构件只要按着业务需求,重新组织构件即可解决问题。nmake可以按着业务需求轻松地把数据处理构件组合起来形成带有业务逻辑关系的数据处理管道,并且nmake提供了业务流功能,针对不同的业务需求可以提供不同的业务流支持,从而极大的提高业务本身的灵活性。当业务需求变动时,nmake可以通过重新组合数据处理构件来完成业务,而不需修改或者重新编写数据处理构件,从而提高数据处理构件的可复用性。
4 基于互联网的主题数据平台的解决方案
基于互联网的主题数据平台面临的主要问题是如何通过远程数据传输将互联网的异地、异构的数据源中的数据传输到主题数据服务层中。数据一旦进入主题数据平台的主题数据服务层,就可以使用和基于局域网的解决方案相同的技术对数据进行通过远程数据传输将互联网的异构数据传输到主题数据服务层之后的功能与基于局域网的数据转换接口的功能相同。
中央广播电视大学远程开放教育的教务管理系统是一个跨越44个省面向全国的开放式教育体系结构。该系统包含四级平台、五种角色,由于其独特性中央电大教务管理系统基于互联网的主题数据平台的搭建有如下4方面需求:
1) 中央电大各个系统之间、中央电大教务管理系统各级平台之间需要能进行灵活的数据交换。
2)每次交换数据的数据量可能达到gb级。
3)部分数据交换有实时性要求,在规定时间内客户端必须收到响应,不能因为数据传输而推迟业务进度。
4)需要在网络状况不稳定的情况下完成数据交换,因为中央电大教务系统是跨越44个省的开放式教育系统,所以中央电大需要同44所省电大交换数据,在这种情况下网络状况不可预知、稳定性难以保证,但传输仍然需要进行。
4.1 soap协议与hessian协议的比较
目前,web服务技术是解决异构平台系统的集成及互操作问题的主流技术
[1]。它所基于的xml已经是internet上交换数据的实际标准,基于通用的进程间通信协议和网络传输协议屏蔽平台的差异,可以将各种异构环境下的通信及调用请求均统一为标准的web服务格式
[3]。
但是由于soap协议的结构问题会使封装的数据膨胀数倍。当传输数据量比较小时,问题不是那么明显,但是当进行大数据量传输时就会导致web服务的传输性能在实际运用中降低了很多。这对于经常有大数据量数据交换的应用系统来说是不适用的。
caucho technology公司制定的hbwsp(hessian binary web service protocol)
[2]在这方面的有所突破。hessian协议和web service常用的soap协议类似,也是将协议报文封装在http封包中,通过http信道进行传输的。因此hessian协议具有与soap协议同样的优点,即传输不受防火墙的限制(防火墙通常不限制http信道)。hessian协议的优势在于:它把本地格式的数据编码为二进制数据,仅用一个字符作为结构化标记,hbwsp封装后的数据增量明显小于soap封装后的数据增量。并且相对于soap,hessian协议的外部数据表示有3个显著的优势:
1)采用简单的结构化标记。简单的结构化标记减少了编码、解码操作对内存的占用量。编码时,只需写少量的数据,就可以标记结构;解码时,只需读少量的数据就可以确定结构。而且,简单的结构化标记减少了编码后的数据增量。
2)采用定长的字节记录值。用定长的字节记录值,解码时,就可以使用位操作从固定长度的位获得值。这样不仅操作简单,而且可以获得较高的性能。
3)采用引用取代重复遇到的对象。使用引用取代重复遇到的对象可以避免对重复对象的编码,而且也减少了编码后的数据量。
因此使用hessian协议传输数据量比soap协议要小得多。实践证明,传输同样的对象hessian协议传输的数据量比soap协议低一个数量级。因此hessian协议比soap协议更适用于分布式应用系统间大数据量的数据交换。
4.2 hessian协议的实现构架
hessian协议的实现构架如图3所示:为了实现hessian 构架,设计了下列组件:编码组件、解码组件、通信组件、报告故障组件、代理组件、调用服务过程组件。
图3 hessian协议的实现构架
首先客户端发出本地请求,代理组件响应请求依据服务接口,生成客户端存根,并调用编码组件对本地请求进行基于hessian binary web service protocol标准的二进制编码。然后调用通信组件将请求发送给服务器端。服务器端通信组件接收到请求后把请求转发给调用服务过程组件,调用服务过程组件会首先调用解码组件,得到过程标识,将过程标识转给服务器端存根,并依据部署文件和客户端的请求加载服务过程的实现类。然后根据过程标识、过程参数调用服务过程。最后调用编码组件将响应结果进行编码并通过通信组件返回给客户端。
当数据传输、通信发生错误的时候就需要启用报告故障组件,它可以以异常的形式,报告发送端、接收端、或者网络连接发生的故障,并把错误记录以日志的方式记录下来保存在文件中,以备日后查阅。
4.3 实现结构
针对教务管理系统互联网传输存在的一系列问题,基于互联网的主体数据平台采用基于hbwsp的轻量级跨平台通信技术实现数据交换,如图4所示。在客户端,应用服务器从主题数据服务层中抽取数据,并按着hbwsp的外部数据表示对本地格式数据进行编码。然后通过internet网进行传输,在服务器端,数据交换的服务负责按照hbwsp的外部数据表示对接收到的数据进行解码,然后再对数据进行分析、处理后把数据插入到服务器端的主题数据服务层中。
图4非持久同步方式的数据交换解决方案
该解决方案的主要特点包括:
1)采用了hbwsp的二进制编码方式解决了异地、异构平台系统的通信问题,并使数据交互具有了一定的实时性。
2)由于hbwsp简洁的编码方式以及编码、解码性能高等特点使数据交换具有交换gb级数据的能力。
3)采用了hbwsp的二进制编码方式有助于缩短整个数据交换所需要的时间。其编码性能高的特点,有助于提高编码速度,减少发送方编码本地数据的时间。其解码性能高的特点,可以减少接收方解码、重构本地数据的时间。从而减少了数据交换的响应时间。
4)采用了hbwsp的二进制编码方式和数据分批传送技术有助于充分利用网络状况良好的时段。可以在网络状况良好的时段尽可能多的完成数据交换。
5)采用了断点续传技术,保证了当网络断连或响应超时导致正在进行的数据交换被中断,在故障修复后仍然可以从中断处开始,继续完成上次没有完成的数据交换的能力。断点的粒度可以调节,可以是一条数据,也可以是多条数据。
6)采用了事务保护机制,把每批要传输的数据定义为一个事务,本批要传输的数据的事务完整性不依赖于已经完成的各批数据,本批数据传输发生错误也不会对已经完成的各批数据造成影响。采用这种方法,可以在数据交换过程被中断的情况下保证数据交换事务的完整性。
5 总结和展望
本文在soa理论的基础上提出了一个主题数据平台的概念,力图把异地、异构的数据综合起来,组成一个强壮的、高可靠性的、可共用的标准数据服务平台。从而解决中央电大新旧教学管理系统数据“孤岛”的问题。我们再进一步针对现实环境:局域网和互联网两种情况进行了分析,并给出了实现框架和技术细节。
但是如何在信息暴露的基础上,对业务应用进行进一步的梳理、划分、整合,从而封装成用户可以随意组合、使用的标准服务,从而实现真正的soa,是需要我们进一步研究的内容。
参考文献
[1] george coulouris, jean dollimore, tim kindberg. distributed systems concepts and design.金蓓弘.第3版.机械工业出版社, 2003: 134-150
[2] caucho technology,inc.hessian 1.0.1 specification. http:///hessian/hessian-draft-spec.xtp
[3] ramesh nagappan, robert skoczylas, rima patel sriganesh.developing java web services architecting and developing secure web services using java.庞太刚, 陶程.清华大学出版社,2004:17-18