通用企业应用平台UniEAP
2008-12-29
作者:赵永生,赵大哲,邸晓明
近年来,IT行业技术方向变幻莫测,技术发展一日千里,能正确理解技术、运用技术为企业构建解决方案的人员为数不多,而在实际的项目的需求中又要求在尽可能短的时间内满足用户的复杂需求,这样导致一个应用系统" title="应用系统">应用系统很难在效率、稳定性、易维护性方面取得最佳平衡。UniEAP正是基于这样一种考虑而构建的一个基于Web等多种接入方式的三层结构的分布式对象模型系统。我们的目标是,使应用系统的设计和开发人员从激烈变化的“技术洪水”中解放出来,避免重复性的劳动,避免不必要的代码维护和升级,集中精力了解用户需求,搞好业务系统的设计和开发。
J2EE作为企业级应用的完整解决方案,为应用系统提供了跨平台的可移植性, 开放性和可扩展性,同时也为创建Internet和n-tier应用提供了底层的技术架构。因此,J2EE在企业高端解决方案中有着广泛的应用。但是,Java和J2EE也并不是“银弹”,在不理解或者没有经验的情况下,有可能错误的使用并构造带有很多问题的应用,这将是一个灾难。
UniEAP平台面向业务,为应用系统提供一个满足需求的分布式企业核心应用支撑平台,保证安全高速地开发系统,平台的开发遵循业界标准,具有扩展(开放)性强、高强壮性、高稳定性,屏蔽业务开发人员对基础技术的了解,促进业务模块的再利用,能针对用户需求在多种环境下应用。面向未来,UniEAP平台同时保证:技术的变化不会影响业务模型,业务的变化通过对系统的配置来实现。
2 体系结构及特点
体系架构:UniEAP在J2EE的基础上采用分布式体系结构技术,大大减小了项目的实施成本。平台采用的多应用支持技术、Web事件机制、对象持久化技术、负载均衡" title="负载均衡">负载均衡等技术,大大增加了平台的可配置性,可扩展性。同时,UniEAP平台支持主流应用服务器" title="应用服务器">应用服务器和中间件产品,具有开发周期短,质量高的特点。它是一个支持B/S模式应用开发的通用框架和平台,运行在J2EE兼容的应用服务器之上。
.UI管理层是基于WebServer和Servlet来实现的。客户端的请求通过Web协议传给服务器端的WebServer, WebServer再将其中的Servlet请求传给Servlet 容器, Servlet容器再调用UniEAP的入口Servlet,即各种Listener, Listner再将各类请求转变为统一的UniEAP支持的事件格式,传递给事件响应和处理系统,由该机构根据事件的接受者找到相应的UIM层的窗口对象,再将请求交由该对象来处理。
.业务层的业务组件根据需要调用对象持久化层的数据访问接口访问数据。
.对象持久化层提供一组访问数据库的标准接口,用于存储指定的业务数据。
.Listener,处理各种终端协议的机构,同时产生统一的事件。
.Translator,将业务处理的结果,转换为各种终端支持的结果后传递给终端。
UniEAP的对象关系模型(请见图2)形象地描述了其对象间的关系,UniEAP平台的设计是分层的,层与层之间通过接口进行调用;同时在各层内又都是面向对象的,各层负责管理自已的对象,而对象与对象之间又是互相关联的,这种关联关系将各层的对象贯穿在一起,而OP层不但将各对象的属性持久化到数据库,同时也持久化了对象间的关系,从而使整个系统成为一个基于对象的,可配置的,灵活的应用系统。
从图2可以看出,BO对象是系统的核心,向下,BO的属性与数据库中一个或多个表的字段对应;向上,BO的属性通过Panel来显示。
界面层:UniEAP界面成采用了J2EE的JSP和Servlet的技术。平台定义了系统的界面模型,它是对实际用户界面的抽象,界面模型如右图所示。其中:
Panel:用户界面元素的容器,是用户与系统交互的基本单元;
View:应用系统业务组件的视图,是界面上相关Panel的容器;
Child Menu:相关View之间的导航工具,每个菜单项与一个View对应,用于在某个功能组的各子模块间导航,每个功能子模块都与一个View相对应;
Root Menu:应用系统不同功能组之间的导航工具,用于在应用的Child Menu间导航;
Application:一个应用系统的完整表现,是Root Menu、Chile Menu和View等界面组件的容器。
业务层:UniEAP定义了平台的业务模型组件规范,描述为Business Object,以下简称BO。我们需要将业务逻辑、数据等包装成商业对象BO,并利用BOMA(通过工作流技术把多个BO和一些人的活动连接成相对复杂的商业对象)来完成复杂业务。业务层主要功能包括负载均衡,调用代理自动生成,业务对象生存期管理。
数据层:数据层是对应用数据源的访问功能的一种抽象,数据层支持以下特性。在实现上采用了采用的J2EE的JDBC和JCA等技术。
特性 |
说明 |
对象的批量操作 |
可一次读取、修改、删除多个对象。 |
对象的级联操作 |
在对主对象进行读取、删除、复制等操作时,可以自动对与它相关联的对象进行相应的操作。 |
事务处理能力 |
提供统一的基于J2EE的分布式事务处理功能。 |
支持多种数据库 |
可以支持目前比较流行的几种关系数据库系统。 |
支持多个数据源 |
在同一个系统中,可以同时访问不同的数据源,各个对象可以来自不同的数据源。 |
连接池管理 |
数据库连接的共享资源池管理能力。 |
业务对象可定制性 |
在系统运行期增加业务对象的定义和修改业务对象的属性。 |
扩展性 |
允许二次开发商提供特殊的Persistence访问类。 |
产品特点:
分布式体系架构:UniEAP采用分布、并行的处理方式,大大减小平台的实施成本;
支持多应用开发:UniEAP平台支持在一个Web应用下构造多个业务应用的概念;并且不同的业务应用拥有属于自已的资源(包括界面资源和业务对象资源和数据源);
负载均衡技术:UniEAP的业务对象支持多种访问方式(如本地、J2EE的RMI、SOAP等),支持分布式调用。当具体调用发生时,由调度管理器决定调用的目标,达到负载均衡的目的;
遵循业界标准:为了保证系统的良好开放性及代码复用率,整个UniEAP的开发遵循如下业界标准:JAVA 1.3/1.4, JSP 1.0/1.1, Servlet 2.2/2.3, XML 2.0, EJB 2.0, JDBC2.0,SOAP1.1;
Web事件响应机制:提供Web请求的事件响应机制,简化Web应用的开发;事件主要发生在Application,Menu,View,Panel上,其中尤其以Panel上的事件最复杂。右图给出事件传递及转换的一个图形表示:
支持主流应用服务器、中间件产品和数据库:BEA Weblogic/Tuxdeo,IBM Websphere/CICS,Tomcat, Oracle,SyBase,…
提供大量的功能组件:包括工作流,日志,异常处理" title="异常处理">异常处理,打印,报表等。
UniEAP平台功能介绍
可外挂式组织机构:UniEAP 支持外挂式组织机构模块功能,即不仅可以使用 UniEAP 提供的组织机构模块,也可以根据开发者自身的需要,按照约定的接口规范,自己重写一套组织机构处理模块。这一功能,为复用旧有系统中组织机构信息提供了方便。
分布式事务支持:UniEAP 提供对分布式事务的支持,极大简化二次开发者进行分布式事务处理的工作量。它使得对我们以统一的方式和配置的方法来处理分布式事务。
分级日志管理:UniEAP 提供了一套完整的可配置可扩展的日志输出机制,可根据不同的类定义不同的日志输出类型,每一种输出类型规定了日志输出的特定形式,包括输出介质、输出格式、优先级别等几个方面。优先级别包括由低到高的五个级别:DEBUG、INFO、WARN、ERROR和FATAL,用于描述日志的重要程度。有五种方法来输出日志信息,分别对应以上的五个级别。当输出方法的级别大于等于日志类型的级别时,该日志信息被输出,否则被屏蔽。
通用异常控制系统:英文“Universal Exception Control System”,简称为UniECS。
主要有以下几个功能:
统一的异常处理模式:在每一个catch块中只需调用相同或相似的语句来处理异常。
不同的类、不同的方法可以选择不同的处理方案:UniECS有几种缺省的异常处理方案,用户也可以自定义异常处理方案。每一种异常处理方案都有一个唯一的用来标识的方案码。在配置文件中,可以对不同的类、不同的方法设定采用不同的方案码,以表示对他们采用不同的异常处理方案。
可自定义异常输出方案:用户可以舍弃UniECS缺省的采用Log4j的异常信息输出方式,而自定义类实现ExcLog来进行异常输出。
多业务" title="多业务">多业务应用的支持:用户通过使用UniEAP,可以建立多业务应用,并且时多个业务应用允许在同一个Web服务上。用户可以通过配置工具管理各个业务应用的运行状态,并且当应用状态改变时会自动的释放相应占用的各种资源。不同的业务应用可以根据需要创建自己的Panel、BO以及基于UniEAP的各种资源。
权限管理:包括模块级的权限管理(Rolesbility)、数据级的权限管理(Visibility)、操作级的权限管理(Operationbility)三方面。其中:
Rolesbility对用户所能访问的菜单和视图导航条进行限制,达到模块级控制。
Visibility对用户所能访问的视图的记录集进行限制,达到数据级的控制。
Operationbility对用户所能接触的操作界面进行限制,从而达到操作级的权限控制。
配置工具:“UniEAP配置工具”是UniEAP系统的辅助开发工具,她通过友善的界面与完整的功能使用户能够在一个统一的模式下轻松的对企业的应用进行配置。典型的界面如下:
“UniEAP工作台”工具具有以下特点:1)配置的集成度高;2)支持多应用的定制;3)支持各种界面组件的可视化配置;4)支持数据源的定制;5)提供组织机构配置和权限配置;6)支持远程配置服务器的自动查找和配置正确性检验;7)采用纯Java技术开发,不受开发平台和系统语言环境的限制,可以应用在多种开发平台并支持多语言环境。
总结
J2EE的广泛应用已经使得众多用户受益,在J2EE的基础上,UniEAP平台的产生,更加加快了企业级应用系统的构建过程,并使得系统质量进一步提升。
目前,UniEAP的用户已分布在很多应用领域,包括:上海通用汽车客服中心,海尔综合信息系统及客服中心,华夏基金网上交易系统,安徽烟草管理系统、南海社保、辽宁联通、山西联通、安徽联通客户服务中心等,并逐渐向关键业务领域渗透。