基于Java EE多层软件架构的研究与实现 王 勇 中国石油辽河油田华油实业公司 【摘要】软件的系统结构在软件的开发中越来越重要,它可以分为单层、二层、三层或多层。基于J a V a E E的多层软件结构是一种 典型的应用,本文主要介绍了基于Java EE软件架构ESIP的设计和实现。ESl P服务器端采用Ja V a EE技术,应用中间件提供大量的服 务,客户端采用插件机制,方便系统的扩充,形成从服务器端到客户端的完整的解决方案。分析了E S I P的安全性。实际应用验证了 E Si P软件架构是开发大规模复杂软件的一种有效途径。 【关键词】Java EE多层软件架构ESIP 中图分类号:TP312文献标识码:B文章编号:l009—4067(201 0)09—68—01 随着计算机技术和网络技术的发展,计算机软件的复杂程度在不断增 加,系统结构在软件设计和开发过程中所起的作用越来越重要。根据用户界 面与后台数据之间层次数目的不同,我们把应用结构分成单层、两层、三层 或多层软件结构。单层应用软件由于包含了所有的应用逻辑,从后台最基本 的数据处理到前台对用户的响应以及处理结果的显示,所以应用软件往往比 较庞大。 随着软件规模越来越大、复杂程度越来越高,逐渐显现出其局限性。 许多学者转向研究其他软件架构,例如面向服务的软件体系架构和软件复 用技术。笔者结合成熟的软件技术,研制开发了一套基于Java EE的软 件架构ESIP,提供了从服务器端到客户端的完整解决方案,大大提高了 软件生产的效率,提高了软件的可靠性,能够适应不同应用的需要。基于 此架构已成功开发了几套软件产品。本文主要阐述ESIP的设计思想和实 现过程。 1 ESIP简介 ESIP全称为Equipment Support InformatiPlatform(装备保障信息 平台)。ESIP的设计目标是为装备信息化建设建立一个通用的、扩展性好的 平台,通过平台基本服务层,利用中间件技术和插件技术,为开发人员提供 丰富的二次开发接口,为用户提供优秀的软件产品。 在设计ESIP软件架构时,考虑了以下因素。 1)可扩充性、可维护性。可扩充性包括2个方面:一方面指软件模块的 可扩充,能够很方便地扩充新的软件功能;另一方面指系统本身的可扩充性, 能够支持大规模、高并发的访问,支持集群等。可维护性则要求能够根据客 户需求变化进行快速的升级和改进。 2)组件复用。包括2个方面:服务器端的组件复用和客户端的组件复用。 服务器端组件能够支持远程客户端访问、服务器端本地Web层访问,客户 端组件能够相互调用和通信,方便集成。为此,采用了中问件技术和客户端 插件技术来达到组件复用的目标。 3)访问方式。可以通过网络远程访问,也可以在本地以单机模式访问, 满足不同应用环境的需求。网络访问时能够跨广域网进行访问。 4)安全性。支持良好的用户、权限管理,以及支持常见认证体系(如 PKI)、SSL加密传输等。首选采用LDAP认证技术实现用户和权限管理。 5)用户界面及数据接口。能够支持不同方式采集的不同格式的数据, 支持不同风格的用户界面,例如基于浏览器的瘦客户端和具有丰富用户 体验的富客户端。基于上述考虑,考察了2种流行的技术和框架结构:基 于微软.NET技术的软件体系和基于Java EE技术的软件体系。通过比 较,选择了Java EE技术作为ESIP的技术基础。Java EE是J2EE的升 级和发展,引入了新的技术和规范,简化了开发和部署,符合ESIP的发 展要求。 2 ESIP体系结构 ESIP数据服务层隐藏了对不同数据库的支持,并对平台服务层提供统 一的数据访问接口。平台服务层提供基本的服务,可运行在Java EE环境 或单机环境中,形成应用中问件。接口层主要对硬件和其他系统提供数据转 换服务,界面层为用户提供交互界面。通过平台服务层和数据服务层,隐藏 了对后台数据库的直接访问,并且这2层可以采用集群、负载均衡等技术, 68 中国电子商务..2010・09 实现系统的扩充。当ESIP以网络方式运行时(采用JBoss作为Java EE服务 器)。此体系架构有如下特点。 1)充分利用了Java EE体系结构的优点,集成了多项Java EE服务, 从而简化服务器端开发,方便客户端调用。例如应用中间件的自动发布、数 据库连接池支持、事务处理支持等。 2)支持Web瘦客户端和富客户端2种访问方式,满足用户在不同环境 下的应用需求。通过应用中问件,为Web客户端和富客户端提供一致的访 问接口,避免了技术实现上的差异。 3)业务逻辑和界面实现分离。从图1和图2可以看出,界面层只是用户 与系统的一个交互接口,所有业务逻辑都在平台服务层借助数据服务层实 现。在具体实现时,采用了EJB3.0和Hibernate关系对象映射技术,方便 了开发和部署。 4)完善的安全机制。采用Java EE安全机制,所有数据访问都处在受 控的访问上下文中,数据库可以隔离在内部网络,客户端只能通过平台服务 层进行访问,避免了潜在的安全隐患。 3 ESlP安全性 ESIP利用Java EE提供的安全机制和LDAP实现了安全管理。客户端 通过LDAPI ̄务器认证后,把认证信息传播到服务器,服务器产生认证凭 据,在客户端调用业务组件提供的各种服务时进行检查。业务组件的安全由 JBoss ̄器负责,组件的开发人员几乎可以不用或者很少在组件中加人有关 安全的代码。这种安全逻辑和业务逻辑相对的架构,使得ESIP系统有 更好的灵活陛和扩充性。系统通过声明式安全性和编程式安全l生实现安全控 制。客户端采用数据库管理的配置式安全l生和开发人员定义的编程式安全性 进行控制。客户端的每个插件都配置了适当的操作角色。当客户端认证通过 后,便从LDAP服务器获取用户的角色和权限信息,然后从数据库中查找用 户可以执行的插件模块,对界面进行权限控制。同时开发人员可以在界面上 进行细粒度的编程式控制,满足不同的权限管理要求。用户执行的所有业务 逻辑操作还受到服务器端的安全性管理,未授权的操作服务器将不予执行, 从而进一步增强客户端的安全性,防止绕过客户端安全机制进行的未授权业 务操作 4结束语 从实际应用看,ESIP体系结构显示了其独特的优越性,集中体现在: 1)平台提供了大量服务,集成了多个基础公共功能模块,极大地方便了开 发;2)分离业务逻辑和界面实现,方便业务逻辑的测试,提高系统的健壮 性;3)客户端插件式体系,方便系统的扩充和升级,能够迅速适应多变的 需求。 参考文献 【1】杨新宇,刘力勇.关于B/S架构的深入探析【J】.计算机与网络, 2 0 0 7(1):1 71—1 7 2. 【2】叶钰,应时,李伟斋,等.面向服务体系结构及其系统构建研究【J】. 计算机应用研究,2 0 05,2 2(2):32—34. 【3】杨芙清.软件复用及相关技术[J].计算机科学,1999,26(5):1—4. 【4]周轶刚,康建初.可重用软件模式【J].计算机工程与应用,2 0 0 2 f1 7):87—90.