技术架构说明书

来源:互联网 发布:光翼学园网络班好吗 编辑:程序博客网 时间:2024/04/30 16:08
技术架构说明书
1 前言
一个企业级的商业软件能够满足用户需要、正常运行、易于维护、易于扩展,必须拥有一个良好的软件架构支撑。本文主要是分析和构建一个企业级商业软件架构。

2 架构分析
企业级的商业软件架构在技术层面的要求主要体系在高性能、健壮性和低成本。

 高性能
对于企业级商业软件来说,软件架构需要尽可能地使软件具有最高的性能,支持最大的并发性。
对于企业级应用,传统的最高性能的软件架构是Sun较早提出的J2EE架构方案。他通过可缩放性――一个应用在给定相应硬件的条件下支持增加的负载的潜力。简单的说,利用J2EE的分布式特性,使软件可以通过添加服务器等硬件设备来提高性能,增加负载能力。
J2EE为实现分布式体系结构提供了出色的支持。同一个分布式J2EE应用的构件可以被分布给运行在一台或多台物理服务器上的多个JVM。分布式J2EE应用以使用具有远程接口的EJB作为基础,而远程接口能够让应用服务器隐藏掉分布式构建的访问和管理的大部分复杂性。
不过尽管J2EE很大的降低了分布式应用的复杂性,但是分布式应用还是很复杂,如果通过分布式来为软件提供可缩放性,代价还是很大的。
我们现在的企业级商业软件迫切需要分布式吗?我们需要怎样的分布式?
现在企业级商业软件的性能主要在由Web容器服务器、逻辑处理服务器和数据库服务器来决定。J2EE实现的分布式体系结构主要是针对逻辑处理服务器。
下面我们分析一下逻辑处理服务器的分布式方案。逻辑处理器采用分布式的话,那么服务器的CPU颗数需要大概70颗以上。因为如果需要大概64颗CPU服务器的话,采用一台多CPU服务器就可以解决。而70颗CPU的逻辑处理服务器的硬件成本已经到了远远超出了目前商业需求所能承担的硬件成本,而且这还不包括想匹配的Web容器服务器和数据库服务器成本。所以如果需要使软件具有可缩放性,通过硬件解决方案(多CPU服务器)比软件解决(分布式系统)要有效得多。
所以就目前的商业需求和硬件环境,架构通过缩放性使得软件获得高性能,缩放性主要通过改善硬件配置来解决。


 健壮性
企业级的商业软件要求软件是可靠的和无缺陷的。现在的架构一般是,服务器模式的。软件的可靠和健壮主要依赖与服务器。服务器的稳定通过良好的代码和完备的测试能够解决这个问题。
由于客户需要,现在需要在客户端也具有一定的健壮性。当服务器由于意外出现故障的时候,客户端也能够继续运行,在客户端发生的数据先保存在服务器,待服务器恢复完备后,再把数据上传到服务器。
对于这点要求,Sun提出的J2EE架构已经事先考虑过,Sun认为软件不仅能够响应浏览器的请求,还能够响应应用服务器的请求,比如Swing编写的应用程序,VB编写的应用程序等。
所以对于健壮性要求而言,一是通过加强代码质量,二是在软件架构上采用兼容应用程序客户端的方案。


 低成本
企业级商业软件还有一个很重要的要求:低成本。软件架构要求简单、易掌握,复杂度低,易于维护和扩展,易于测试。
低成本、高效率的研发架构传统思路是采用分层的思路、OO设计原理、强调重用来。
采用分层的思路是通过把复杂的业务分块来实现降低难度,同时通过业务分拆来达到重用的目的。
采用OO设计原理能够使复杂的系统变得简单化、条理化,使开发、维护变得简单。
通过重用,可以减少开发量,减少出错的概率,易于开发和维护。

一般来说,传统的分层思路是把系统分为界面展示层,控制层,逻辑处理层,数据访问层和数据存储层。OO的设计原理主要是为了降低逻辑处理层的复杂度。
分层是为了把复杂度分解,不过多层次本身也带来了一些额外的复杂性。因此本架构设计分为三层:界面展示层、控制层和数据存储层。取消逻辑处理层和数据访问层。这样做的目的是通过降低系统架构层次来降低开发工作量。整个数据架构以XML为核心,通过XML连接所有的组件层,通过XML进行通讯。把逻辑处理放到数据存储层,通过数据库的处理能力来解决商业逻辑,这样做即可以减少开发量,也可以取消逻辑处理层,同时也可以使用OO设计进行业务处理。由于采用XML为数据为接口,所以数据访问层全部可以采用统一的模式,因此可以取消此数据访问层。


3 架构定义
本架构以XML为整个系统的交互接口,包括系统架构内部和外部。整个系统分为界面展示层,流程控制层和数据存储层。系统由架构支撑组件类、独立客户端组件类、AJAX组件类、流程控制组件类、数据存储组件类、消息组件类、邮件组件类、移动组件类、GIS组件类。
架构的核心优势是以AJAX实现最强大的浏览器客户端,以智能客户端实现独立客户端体现最强大的系统健壮性,摒弃O/R Mapping使研发效率得到大幅度提高。
0 0
原创粉丝点击