UML软件工程组织

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

 

1. 核心框架子系统

适应大多数Web应用需要的基础系统,可以把前台(JSP或页面)开发人员和后台(EJB或业务)开发人员的工作完全分离,以保证高效率和低成本的开发,并提供系统开发接口。

2. 事务管理子系统

实现对EAIF的所有业务进行统一调度,负责负载均衡与业务热拔插;

3. 系统配置子系统

提供统一的系统管理与配置窗口,以便帮助运行维护人员完成新业务的配置部署,并提供规范的二次开发接口;

4. 统计分析子系统

反映企业业务的种类、各类业务量的分布,为业务管理部门提供决策支持。

5. 业务插件子系统

实现不同企业的不同业务的网上代理功能。它相对独立于EAIF,按照不同企业的应用需求进行具体的接口分析与商业方法实现。

系统主要特点


1. 业务的动态识别与加载(软件热拔插)

EAIF中的所有业务都由系统核心配置XML文件定义,通过EAIF系统的管理控制台可实现新业务的添加和旧业务的抛弃。系统将通过一个守护进程监听XML文件的变化,并将变化后的新业务列表解析读出,并保存到一个HashSet,在业务相对空闲时进行新业务的动态配置、识别和加载。这并不需要Reset应用服务器,更新可用业务的HashSet即可。其相关XML配置参考如下:

<AllBusiness>
<BusinessType>
<!-- 
业务编号,业务编号在整个框架系统中是唯一的,必须为正整数,最大值为java.lang.Integer的最大值 
-->
<BusinessID>1000</BusinessID>
<!-- 对应的业务EJB的JNDI名 -->
<BusinessEJB>AgentBusiness1</BusinessEJB>
<!-- 业务信息 -->
<BusinessInfo>示范1</BusinessInfo>
<!--
业务支持的最大并发数,等于0则无限制,小于0则不可做该业务操作,大于0则为业务支持的最大并发数 
-->
<BusinessMax>0</BusinessMax>
</BusinessType>
<BusinessType>
<BusinessID>2000</BusinessID>
<BusinessEJB>AgentBusiness2</BusinessEJB>
<BusinessInfo>示范2</BusinessInfo>
<BusinessMax>0</BusinessMax>
</BusinessType>
</AllBusiness>


该文件既可由EAIF提供的控制台进行配置,也可由用户手工修改。

◆ 完善的日志管理

EAIF系统将包括:系统日志和业务日志两套日志。系统日志负责记录系统运行信息,保存在文本文件中。业务日志则负责记录业务使用的情况,保存在数据库中。

系统日志和业务日志的级别描述为:

1:debug

2:info

3:warn

4:error

5:fatal_error

选择的级别会把低级别的信息自动屏蔽掉,建议在运行初期设置为1,稳定以后设置为2。日志级别可通过系统XML配置文件的<log>节点来设定。示例如下:

<log>
<!-- 从1到5 -->
<log-priority>1</log-priority>
</log>


2. 个性化服务(Portal)

EAIF应提供适合于不同用户需求的个性化服务,通过配置不同的用户类型登录页面,即可实现用户身份认证,完成后进入不同的个性空间。根据用户的级别,提供积分和相应的优惠,并特别为大客户提供“绿色通道”,尽量考虑和满足企业大客户的应用需求。其基本的XML参考配置如下:

<AllUserType>
<!-- 用户类型信息 -->
<UserType>
<!-- 登录成功的页面 -->
<LoginPage>LoginUserIndex.jsp</LoginPage>
<!-- 登录失败的页面 -->
<ErrorPage>ErrorPage.jsp</ErrorPage>
</UserType>
</AllUserType>


3. 插件配置接口

EAIF为实现灵活的配置方案和方便的用户定制,应提供相应的插件配置接口。具体包括用户类型认证器接口、用户角色接口及定制的初始化业务插件接口。

◆ 用户类型认证器接口和用户角色接口提供EAIF系统支持的用户类型开发和定制。用户类型认证器实现该类用户的身份确认,而用户类型角色实现记录该用户类型的某些参数和用户特性。只要实现这两个接口,即可添加任意需要的用户类型。将其加入系统核心配置XML文件,即可完成该类用户的认证,并且可以识别其可操作的业务类型。其参考XML配置如下:

<AllUserType>
<UserType>
<!-- 用户类型名 -->
<UserTypeName>LoginUser</UserTypeName>
<!-- 用户类型编号-->
<UserTypeID>1</UserTypeID>
<!-- 用户类型角色 -->
<RoleClass>com.allcom.Webframe.example.user.LoginUser</RoleClass>
<!-- 用户类型登录使用的认证器 -->
<ValidatorClass>com.allcom.Webframe.example.user. 
RegisterValidator</ValidatorClass>
</UserType>
</AllUserType>


该用户可操作的业务类型定义XML参考配置:

<LoginUserBusiness>
<-- 可用的业务ID -->
<BusinessType><BusinessID>1000</BusinessID></BusinessType>
<BusinessType><BusinessID>2000</BusinessID></BusinessType>
</LoginUserBusiness>


◆ 额外的初始化插件接口提供其它任何需要的插件定义。只要实现该插件接口,就可向EAIF系统中加入任何需要的初始化插件信息。其在系统核心配置XML文件的参考配置如下:

<AllPlugInit>
<PlugInit>
<!-- 额外的初始化插件运行的类 -->
<class>com.allcom.Webframe.example.core.ExampleInit</class>
</PlugInit>
<PlugInit>
<class>com.allcom.Webframe.example.core.ExampleInit2</class>
</PlugInit>
</AllPlugInit>


(责任编辑 Sunny

 



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