UML软件工程组织

构建智能企业应用整合框架(1)
作者:文枫    本文选自:开放系统世界——赛迪网  2003年01月15日

 

随着Internet与分布对象计算技术的飞速发展,电信、银行、电力、工商、税务等传统企业都希望把原来基于C/S架构的传统业务应用通过Web来展现。

那么如何在企业业务迅猛发展、应用需求不断扩大、市场竞争日趋激烈、业务整合难度不断加大的基础上,采用灵活、先进的设计理念及结合开放式的系统软硬件平台,在确保业务系统安全、高效、可靠的基础上,构建面向Web、集事务调度、系统配置、业务拓展、统计分析等功能于一体的智能化企业应用平台呢?事实上,数字技术发展到今天,软件已不再是需要安装于具体平台的程序,而是演变为一种互动的服务。那么为了有效地利用企业原有的资源,并无缝地实现新形式下企业传统业务的集成,是不是可以设计一个与行业无关的企业应用整合框架(Enterprise Application Integration Frame,EAIF)呢?它将是一个面向Web的、可动态识别和加载新业务、自适应、易扩展的企业应用整合平台。答案应该是肯定的。本文将详细讲述该架构的设计思想,并提出具体的实现方法。这一设计思想已应用在深圳市电信局的“网上电信局”系统和800业务系统中,并取得了很好的实际效果。

EAIF实现的是一站式网上服务平台的理念。对于企业而言,它将逐渐作为一个独立主流的渠道,并成为传统业务面向Web应用的电子商务平台,从而给企业客户提供个性化的网上业务交易、市场拓展与营销、技术支持和产品售后服务等。希望该文能给那些致力于企业应用整合平台的软件分析与设计人员提供一个思路,并期待与大家探讨以使EAIF更加完善。

系统概述


将企业传统业务整合成面向Web的应用,将是一个分步实施的长期过程。为使其具有良好的技术前瞻性和较强的可伸缩性、可扩展性和易移植性,整体规划显得尤为重要。为了实现这一目标,EAIF系统将以J2EE/XML规范作为实现的基础,具体采用当前成熟的表示逻辑(浏览器层)+业务逻辑(应用服务器层)+数据逻辑(数据库和业务系统层)的分布应用多层结构技术。

核心+插件的配置模式

我们构建EAIF的目的,首先是建立一个可以整合某一行业所有业务应用的、面向Web的通用事务处理平台,并在此基础上,将其架构为一个可以屏蔽行业差别、透明业务处理的抽象模型。也就是通过构建统一的、可重用的系统核心控制与管理模块,在面向具体应用时,根据企业需求进行相应的业务定制,即可配置生成该模型在某一行业的应用实例。该模型将主要包括系统核心(框架)和业务功能两大部分插件。

系统核心应包括用户管理、日志管理、事务调度与管理、安全管理、统计分析等功能。业务插件则主要实现不同行业、不同企业、不同应用需求的业务功能定制(即面向Web服务的业务系统代理),具体采用业务代理EJB的实现模式。如在“网上电信局”中,电信原来97系统的业务处理功能通过CORBA接口封装在Agent97 EJB中实现,而原来的170系统的账单查询等功能,则通过Jolt调用Tuxedo Service封装在Agent170 EJB中实现等。

独立、健壮、完整的Web框架

EAIF的Web应用框架并不单纯是某个需求分析或者面向对象建模的结果,而是EAIF的一个基础部分(也就是系统的核心)。Web框架系统的最终目标是成为一个可以适应大多数企业级Web应用需要的基础系统,可以把前台(JSP或页面)开发人员和后台(EJB或业务插件)开发人员的工作完全分离,以保证高效率和低成本的开发。

Web框架系统运行在Web服务器中,而EJB或业务系统代理运行在应用服务器中。

Web框架的主要功能如下:

◆ 完全符合J2EE规范,可以搭建在任何符合J2EE标准的Web服务器中;

◆ 管理基本的数据库连接;

◆ 完善的日志系统,包括系统日志和业务日志;

◆ 管理用户类型,且用户类型可以自定义(提供用户类型开发接口);

◆ 管理某一用户类型的可用业务;

◆ 管理用户生存期;

◆ 负责业务分发,控制业务并发负载;

◆ 可自定义所需要的初始化插件(提供业务插件开发接口);

◆ 使用XML完成系统配置和数据交换;

◆ 统一的用户登录门户;

◆ 统一的XML业务数据入口和出口。

它的主要工作流程如下:

◆ 系统初始化流程(如图1)



图1 系统初始化流程图


◆ 业务处理流程(如图2)



图2 业务处理流程图


系统体系结构


系统架构

EAIF采用分布应用的多层结构,其架构如图3所示。



图3 EAIF架构图


技术层次

EAIF的技术实现采用J2EE/XML/CORBA的规范,其技术层次如表1所示。同时它提供完整的二次开发接口。

表1 EAIF的技术层面


4 EJB/XML/CORBA J2EE EAIF API
3 JSP/Servlet/XML
2 Java Runtime Environment   
1 Windows/Unix/Solaris/AIX/Linux   


系统关键技术


事务调度与管理控制

为了对所有的业务进行统一分派和管理,并为将来可能增加的新业务预留处理接口,将在EAIF的实例中对所有的企业业务进行分类,对每个具体的业务分配相应的BusinessID。如将电信97系统所包含的业务定义为[1000,1999],将800系统业务定义为[2000,2999]等。通过一个XML文件,对所有具有确定BusinessID的相应业务进行定义和描述,并在系统启动时进行初始化。代码如下:

<AllBusiness>
<BusinessType>
<BusinessID>1000</BusinessID>
<BusinessEJB>Agent97</BusinessEJB>
<BusinessInfo>普通电话新装</BusinessInfo>
<BusinessMax>0</BusinessMax>
</BusinessType>
<AllBusiness>


这样,就定义了BusinessID为1000的业务类型、代理EJB的JNDI名及最大并发数。最大并发数为0表示无限制。

在此基础上,为了实现对EAIF实例中所有业务的统一调度,可以定义事务管理器TransactionManager,它将负责读取XML初始化配置信息文件,然后根据获得的JNDI名初始化所有业务代理EJB的本地接口,并保存到Hash表。它还要分析、解包由浏览器发来的业务请求。根据BusinessID调用相应业务代理EJB远程接口中的商业方法,它还将处理结果发送回浏览器,同时记录系统日志和业务处理日志。具体处理如图4。



图4 Transaction Manager处理图


在EJB中集成CORBA

Java和CORBA具有相当强的互补性,两种技术的紧密结合,使其成为ObjectWeb技术的主要形态,也是当前Web Service分布计算平台的基础。



版权所有:UML软件工程组织