面:一方面指软件模块的可扩充,能够很方便地扩充新的软件功能;另一方面指系统本身的可扩充性,能够支持大规模、高并发的访问,支持集群等。可维护性则要求能够根据客户需求变化进行快速的升级和改进。2)组件复用。包括2个方面:服务器端的组件复用和客户端的组件复用。服务器端组件能够支持
4期第
崔伟宁等:一种基于JavaEE技术的软件架构设计及实现
[5-6]
63
远程客户端访问、服务器端本地Web层访问,客户端组件能够相互调用和
通信,方便集成。为此,采用了中间件技术和客户端插件技术来达到组件复用的目标。3)访问方式。可以通过
网络远程访问,也可以在本地以单机模式访问,满足不同应用环境的需求。网络访问时能够跨广域网进行访问。4)安全性。支持良好的用户、权限管理,以及支持常见认证体系(如PKI)、加密传输等。首SSL选采用LDAP认证技术实现用户和权限管理。5)用户界面及数据接口。能够支持不同方式采集的不同格式的数据,支持不同风格的用户界面,例如基于浏览器的瘦客户端和具有丰富用户体验的富客户端。基于上述考虑,考察了2种流行的技术和框架
结构:基于微软.
NET技术的软件体系和基于[7-10]JavaEE技术的软件体系。通过比较,选择了JavaEE技术作为ESIP的技术基础。JavaEE是J2EE的升级和发展,引入了新的技术和规范,简化了开发和部署,符合ESIP的发展要求。
2ESIP体系结构ESIP总体结构如图1所示。其中,数据服务层隐藏了对不同数据库的支持,并对平台服务层提供统一的数据访问接口。平台服务层提供基本的服务,可运行在JavaEE环境或单机环境中,形成应用
中间件。接口层主要对硬件和其他系统提供数据转换服务,界面层为用户提供交互界面。通过平台服务层和数据服务层,隐藏了对后台数据库的直接访问,并且这2层可以采用集群、负载均衡等技术,实现系统的扩充。
图1ESIP总体结构
ESIP以网络方式运行时(采用JBoss作为当JavaEE服务器),结构设计如图2所示。从图2可以看出,此体系架构有如下特点。1)充分利用了JavaEE体系结构的优点,集成了多项JavaEE服务,从而简化服务器端开发,方便客户端调用。例如应用中间件的自动发布、数据库连接池支持、事务处理支持等。)支持Web瘦客户端和富客户端2种访问方2式,满足用户在不同环境下的应用需求。通过应用中间件,为Web客户端和富客户端提供一致的访问接口,避免了技术实现上的差异。3)业务逻辑和界面实现分离。从图1和图2可
以看出,界面层只是用户与系统的一个交互接口,所有业务逻辑都在平台服务层借助数据服务层实现。在具体实现时,采用了EJB3.0和Hibernate关系对象映射技术,方便了开发和部署。4)完善的安全机制。采用JavaEE安全机制,所有数据访问都处在受控的访问上下文中,数据库可以隔离在内部网络,客户端只能通过平台服务层进行访问,避免了潜在的安全隐患。从图2可以看出,ESIP在服务器端全面采用了JavaEE,包括应用
程序服务器、eb服务器等,充分W利用了JavaEE技术的优势,大大简化了开发和部署的
工作量。
64
装甲兵工程学报
第21卷
2)定义系统
常用的消息,实现客户端消息机制,从而使插件之间能够交互。3)实现系统配置、日志管理等基本功能。mtn.esip.ui插件提供了系统使用的基本界面,例如各种下拉选择框、组合选择框、对话框等,方便插件开发。系统还实现了其他常用插件,例如mtn.esip.office插件,提供公文基本操作;mtn.esip.ui.ldap插件,提供对LDAP用户的管理;mtn.esip.gis插件,提供地理信息系统核心操作等。通过这些插件,实现了客户端所需的基本功能模块。
图2ESIP设计架构
对富客户端,采用了基于插件的体系结构,如图[11]3所示。客户端参考了开源开发平台Eclipse,采[12]用OSGi作为插件体系结构实现的基础。通过一致的接口定义,各业务模块可以相对独立编码、调试,通过接口进行交互,方便开发,提高代码质量,实现各模块间的无缝嵌入、有机结合。客户端实现了2个核心插件:mtn.esip.core和mtn.esip.ui。其中mtn.esip.core提供了如下功能。1)完成LDAP认证,获取用户角色
列表和权限列表,连接应用程序服务器并把认证结果传递给服务器端。单机版运行则直接采用数据库自身完成认证。
图3ESIP客户端结构