基于中间件技术的数据批处理系统的设计与实现

时间:2022-05-06 05:19:02

基于中间件技术的数据批处理系统的设计与实现

摘要:该文通过分析中间件技术在客户-服务架构系统中的作用, 阐述了三层或多层架构相对传统二层客户-服务架构的优势;介绍了遵循J2EE规范的客服架构,并根据企业业务特点具体分析了支持构件思想的系统专用中间件框架Sawara的工作原理,最后通过特定业务模块的实现来说明如何实现它与业务逻辑构件之间的交互。

关键词:中间件;构件技术;client/server系统

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)34-1567-02

Middleware Technology Based on the Data Batch System Design and Implementation

CHEN Ya

(College of Software Engineering Southeast University, Nanjing 210096, China)

Abstract: This article analysis middleware technology that is used in the client/server system, and three-tier or multi-tier architecture has more advantages than the traditional two-tier client/server arctecture. It introduces the arctecture follows the norms on the J2EE C/S framework,and in accordance with business enterprise features, it analysis the principle of middleware framework for system that support the component ideological:Sawara. At last the achievement of specific business module will explain how to achieve the interaction between it and the business logic components.

Key words: middleware; component technology; client/server system

1 引言

由于传统的客户-服务端电子信息系统存在着许多的不足,使得系统往往变得非常的臃肿;而随着系统的规模变得越来越大,尤其是各组件之间缺乏可重用性,造成系统中各个组件的维护成为了一个非常大的问题。构件思想是面向对象思想进一步发展的产物,在企业系统开发中被大量的采用,利用开发可复用的构件技术不仅提高了新系统的开发效率,也方便了对已有系统的二次开发,提高了应用软件的可复用性。

中间件技术经过多年的发展,已经能够在许多的大型项目中很好的解决这些问题,获得了广泛的好评。本文阐述的是一个符合标准的C/S三层架构的企业应用系统,它通过Sawara框架实现了用专门的构件封装了应用程序的业务逻辑,通过加载特定的配置文件从而启动整个工作流程,对工作流程名称不同的任务分别执行相应的数据批处理操作。

2 中间件与三层C/S架构的优势

中间件是由应用软件系统的不断扩大而产生的,现在已经是大型系统不可缺少的组成部分。中间件具有多种模式,基于中间件的应用系统其开发模式使传统的客户/服务器结构发生了变化。传统的客户/服务器结构是指服务器和客户层两层,包括远程数据访问和存储过程调用。在两层结构系统中,客户端负责提供用户界面、运行逻辑处理应用,而典型服务器端负责接收客户端SQL语句并对数据库进行查询,然后返回查询结果。在两层结构给系统带来灵活性的同时,也逐渐暴露出客户端和服务端负担过重的现象。一方面,所有的业务全放在客户端处理,网络的交通很容易堵塞,而且业务逻辑也不容易扩充;另一方面,所有的处理过程都放在数据库层进行,只是将最终结果返回到客户端。这种结构的业务逻辑需采用专用语言开发,很难再移植到其他的数据库上去。也缺少相应的调试工具,具有明显的局限性。此外,随着企业应用的不断扩充和新应用的不断增加,不同硬件平台、不同网络环境、不同数据库之间的互操作,多种应用模式并存,系统效率过低,传输不可靠,数据加密、开发周期过长等等问题也令人头痛。随着Internet的兴起,二层客户机服务器结构的局限性越来越大,成为现代软件应用的一道不可逾越的障碍,三层结构是解决上述问题的关键。三层结构模式是当今先进的协同应用程序开发模型,这种方案将客户机/服务器系统中各种部件划分为三层服务(即客户端服务、中间层服务和数据库服务)。它其实是在线事务处理的一种应用。它的特点是联机的用户数比较多,每次交易的时间都比较短,交易量比较大,而且每次都是采用通用的大型数据库。当客户数大量增加时,我们采用一个中间层,把客户和数据库隔开,客户只需要连接到中间层上,业务逻辑与客户界面也是分离的,软件的开发和维护相对来说都比较独立。目前中间件的技术规范主要分为CORBA,J2EE和Microsoft的COM等技术规范,本项目在开发过程中采用传统的J2EE技术规范。其体系架构包括客户端(浏览器,应用程序),和服务端,其前端是JSP或Servlet,而后端是运行在应用服务器上的包含了业务逻辑的自定义组件库,通过JDBC和数据库服务器相连。

随着中间件技术的日趋完善,为软件体系结构注入了新的活力,改变了传统的客户端/服务器的两层应用模式,在客户端和服务器之间加入了中间层,从而构成了三层或多层的应用模式。特别是软件构件技术的发展,使中间件技术的发展有了更大的突破。

3 系统的客服架构

本系统的架构符合J2EE标准的体系结构,它提供了基于组件的、以应用服务器为核心的多层应用体系结构,以及系统必须的可靠性、可扩展性、可管理性和安全性。其具体结构如图1所示。

整个应用系统由客户层 、中间层(业务逻辑层)和企业信息系统层构成:

客户层:应用客户端部分,包含浏览器等GUI应用程序。浏览器使用HTTP协议与服务器端通信。

中间层: 包括系统的各个应用逻辑组件,并通过它们为客户端提供服务。其中Servlet组件负责客户层与服务器端的请求与响应;组件容器封装了应用的业务逻辑规则,是整个应用的核心部分,按业务功能的不同划分成多个独立的逻辑构件。在本系统中Sawara框架负责为逻辑构件提供如数据库连接的管理,线程控制,异常处理等服务。

企业信息系统层:这一层为企业的信息系统服务,包括数据库系统、事务处理系统等。该层是J2 EE应用和非J2EE应用的连接点。

4 Sawara中间件框架概述

为了支持基于构件的方法,通常要用一些构件基础设施,面向构件的中间件来处理构件间协调的一切复杂细节。中间件提供了一组公共的构件管理服务,能被使用中间件的构件利用。它负责对所开发的构件的包装,,如识别客户端发出的请求,并找到与请求相匹配的构件实例等。

构件(component)是可复用软件的组成成份,可以被用来构造其他软件。它可以是被封装的对象类、类树、一些功能模块、软件框架(framework)、软件构架(或体系结构Architectural)、文档、分析件、设计模式(Pattern)等。构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件。目前较有影响的分步式构件规范,主要有CORBA、OLE/ActiveX和JavaBeans,其发展日趋明朗。

Sawara中间件框架在本系统中是一个负责对服务器端的业务逻辑构件提供各种支持的中间件。它采用嵌入式的运行模式,以一个工具包的形式向应用系统提供服务接口,应用程序可以在同一个java虚拟机下调用。在这种模式下,Sawara框架可以作为业务流程管理和控制功能的基础构件存在。此外,应用系统一般在实现其具体的业务时,都要调用作为业务组件而存在的应用程序,而本系统所采用的调用方式为,应用程序何时被调用是由应用系统决定的,应用系统从Sawara中间件框架中获取所需要执行的应用程序,并直接执行之。

Sawara中间件框架是批处理命令的接口,主要负责数据记录批处理操作的整个流程;

由它从应用系统中提取一些共通的数据设置,如系统时间,批处理操作名称等作为数据批处理的输入参数。根据处理异常的类别将多线程(multi-thread)处理中的记录数据分别进行处理;输入数据的业务处理逻辑一般分为以下几个部分:预处理逻辑,数据主处理逻辑即组件记录的处理逻辑和后处理逻辑;在这几个部分中如果发生了错误异常中断则应实行retry功能,重新进行修复批处理失败的记录;

Sawara中间件框架的整个工作步骤如图2所示。

5 构件模块的设计与实现

本系统的工作原理大致为:画面部分通过触发相应的事件(event)产生数据流,客户端应用子系统设置一个数据批处理名,并把它作为一个工作流过程名通过通信协议发送到服务器端,服务器端实现Sawara中间件框架的各个功能接口,从而执行相应的服务,对整个流程实施管理和监控。该系统中间层是由各个构件组成,我所要完成的是一个实现顾客会员卡优惠处理的子模块,它是中间层众多构件中的一个。它的应用过程大致如图3。

用户在客户端通过按钮启动事件触发机制,产生了相应的用户请求,客户端通过向服务器端发送与用户请求对应的工作流程名,去查找特定的工作流程配置文件,从而连接并启动相应的构件类,构件类的输入参数构成了一个记录类,其数据由两种方式获取:一部分是从客户端的表示层获取,如顾客号码等,另一部分则通过Sawara中间件框架从它处获取,如系统时间,数据批处理名等;构件在执行的过程中需要对从客户端发送的数据进行数据验证;同时还要从控制器中选择执行不同的逻辑,在顾客会员卡优惠处理的子模块中,构件自身的执行过程如图4所示。

此外,整个数据批处理系统采用了多种软件设计模式,例如Facade模式(外观模式),这种模式可以为系统中的各个组成部分所包含的类结构或方法,提供一个简明一致的接口/界面,隐藏子系统的复杂性,使子系统更加容易使用。对于一个大型的,复杂的系统而言,其各个子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多的类。这使得子系统更具有可重用性,也使得客户程序与抽象类的实现部分之间存在着很大的依赖性。

通过引入Facade模式可以将服务端单个子系统与客户端及其它子系统分离,减少子系统对其它组件的依赖,从而提高子系统的独立性和可移植性。在本文中,通过为系统服务端设置一个Facade接口,实现服务端的各个业务逻辑组件与客户端的分离。其具体结构如图5所表示。

这种构件设计方式很好的利用了软件设计模式方面的知识,FacadeServlet组件继承了Sawara中间件框架所封装的类库,实现了http Servlet的工作机制。这样就能够用中间件将客户端的表示部分与业务逻辑处理部分隔离开来,从而支持瘦客户端的开发模式。客户端专门提供人机交互界面,而业务逻辑部分则由构件组成一个个独立的功能单元,从而很好的解决了传统的client/server模式所带来的不便。

参考文献:

[1] 昊明辉,应晶.基于构件的框架开发方法及其特定域应用[J].计算机科学,1997,24 (1):58-62.

[2] 宋晓梁等.中间件及其在三层客户/服务器模型中的应用[J].计算机应用,1999,119(7).

[3] 韩祥斌.基于构件的应用集成中间件平台设计与实现[J].计算机科学,2004,31:257-259,281.

[4] 周劲,谷岩 基于中间件技术的多层分布式应用系统的开发[J].计算机研究与发展,1998,35(7):594-598.

[5] 庄越挺等.GDP:面向对象和软构件技术的设计与实现[J].软件学报,1997,8(5):391396.

[6] 郭胜,许平,王颖,陆桑璐,陈道蓄,谢立.中间件技术的研究[J].计算机科学,2006,31(2):155-159,180.

上一篇:电子文件安全管理浅论 下一篇:基于.NET平台的网络教学评测系统的设计