基于SOA质量属性的系统构架分析与实践

石家庄铁道大学信息科学与技术学院软件工程系      季方

     摘要

本文概要地介绍了软件构架的有关理论和概念,阐述了软件构架技术的设计思想和过程。探讨了系统开发过程中,如何根据系统的需求和质量属性来构建软件系统。考虑到项目的行业特殊性,利用软件构架理论通过对电子商务系统进行了分析和论述,进而在实践中论证了软件构架在提高系统的性能、安全性、可扩充性和易用性方面的现实意义。

关键词

软件架构;商业周期;质量属性;电子商务

Abstract

This paper briefly introduces the relevant theories and concepts of software architecture, and expounds the design ideas and processes of software architecture technology. In the process of system development, how to build a software system based on system requirements and quality attributes is discussed. Taking into account the industry specificity of the project, the software architecture theory is used to analyze and discuss the e-commerce system, and then the reality of the software architecture in improving the performance, security, scalability and ease of use of the system is demonstrated in practice. significance.

Key words

Software architecture; business cycle; quality attributes; e-commerce

一、 前言

几十年来,软件设计者一直是完全按照系统的技术需求表述进行系统设计,即设计产生于需求,而系统又产生于设计。这种设计模型的单向直接性或者生命周期中各种活动的有限反馈,在基于企业级的大型软件开发活动中已日益显露出它的局限性 [1] 。架构(即软件架构),决定系统的整体结构,分层划分,不同部分之间的协作设计考虑因素。 软件架构是公认的考虑到软件开发领域的新学科,目前,还是软件行业的一个重要研究领域。 随着软件架构程逐渐成为主流,它很可能不再被认为“只有极少数被挑出来的人”一系列神秘的做法,而是被广泛接受并基于科学明确定义和测试的实际行为。软件架构的根本目的是解决软件的复用、质量和维护问题,软件架构设计是软件开发过程中关键的一步。与建筑学类似,没有图纸的建筑工地、没有设计的造桥工程都是不可以想象的混乱世界。建筑工程如是,软件工程中亦然!因此在特定领域中运用软件构架技术开发应用系统有非常重要的现实意义。

系统的构架视图是抽象的,它不考虑实现、算法和数据表示的细节,集中研究“黑盒”元素的行为和交互。在设计具有所期望属性的系统时,开发软件构架是第一步。构架商业周期的概念:系统需求来自于企业目标,构架来自于系统需求,系统来自于构架。构架与设计师的经验、当时的技术水平有着密切的联系。并用以实现既定的商业目标和各系统的质量属性。质量属性是软件体系结构设计中需要考虑的重要概念,它对软件体系结构的设计起到了评估、修正、补充等重要作用,用以提高软件体系结构设计的质量。对一个系统的构架分析和选取要从系统质量属性开始。当选定了架构样式后,还要从架构的不同观察点即架构的结构来考察架构样式,不断地调整架构样式即演变交付生命期,在调整的过程中必然会影响到组织结构。当调整后,还必须对架构进行评审,来考证架构是不是满足系统的原本目标和质量属性。

二、软件构架理论

1 、有关概念

1 )构架。架构一次是舶来品,是architecture的中文翻译, 其英文的本意是来源于建筑行业的建筑艺术、建筑(风格)和结构,引入到软件领域里面来以后,并没有一个统一的定义。但不论怎样定义,都视其为系统的一个结构,且由元素、元素的外部可见属性及它们之间的关系组成。

2 )涉众。客户、最终用户、开发人员、项目经理、维护人员以及对系统进行市场营销活动的人都称为涉众,即Viewpoint。

3 )质量属性。系统的质量属性指可用性、可修改性、性能、安全性、可测试性和易用性。质量属性是高于对系统功能(即系统能力、服务和行为)的基本要求的。

2 、构架设计的过程

1 )演变交付生命期。在生命期模型中,构架设计就是从初步的需求分析开始逐步进行迭代。软件概念,初步需求分析,架构和系统核心设计,开发一个版本,交付该版本,汇总用户反馈,交付最终版本。软件架构设计是软件设计的一部分,是其中的总体设计。再系统一开始很难设计一个完整的稳定的完善的系统架构。迭代是软件开发过程中必然的一个过程,这也是人的思维活动的一个必然阶段。

2 )属性驱动设计功能。质量,实现的功能和用户需求市场需求(构建驱动因素)建立和设计了架构,这种方法称为属性驱动设计。属性驱动设计把一组质量属性场景作为传统意义上的输入,对架构进行设计并用视图表示框架。作为多维的软件体系架构模型,是由于用户,项目管理人员,测试人员,维护人员,开发人员希望从架构中得到的信息是不一样的。或者说不同的人看待架构有不同的角度,所以软件体系架构必须要有不同的视图。

三、案例分析

1、问题的描述

由于市场上目前对于软件构架在完全理论层面上的研究很多,但是与实际或者现实的行业,项目等结合的不多,而架构哎不同的行业确确实实是存在的,并且是普遍存在的,所以要做一个统揽各行各业的架构是不可能的。不同的行业有着不同的研究方向。因此该论文只是结合了基于JavaEE的电子商务系统的实际,探讨以质量属性为中心的分析和设计过程。

2 、刺激与响应

构架催促了质量属性场景的生成。设计者要分别基于JavaEE的电子商务网站系统实现高可用性,可修改性,高性能,安全性,可扩充性和易用性等生成有意义的质量属性需求。下面就系统的六大质量属性进行一一探讨。首先安全性一的一个样例:“一个已经通过了身份验证的人试图从外部站点修改系统数据;系统维持了一个审核记录踪迹,并且正在一天内恢复了正确的数据“。该场景的源:通过了身份验证的个人。刺激:视图从外部站点修改系统数据。环境:正常操作下。系统响应;系统维护审核踪迹。响应度量:一天之内恢复正常数据。安全性一般场景生成。源:正确识别,非正确识别或身份未知的个人或系统,来自外部或者内部。经过了授权或未授权的人访问了有限的资源或者大量的资源。刺激:试图显示,改变和删除系统数据,访问系统服务,降低系统维度。制品:系统服务和系统的数据。环境:在线或者离线,联网或者断网。网络有防火墙或者直接连接到网络。响应:身份验证,阻止或者运行访问,授权或者阻止或者服务许可等。相应度量:检测攻击可能性,恢复数据服务,被破坏数据服务的合法范围。

3 、构架的创建

1 )构架受涉众的影响及要达到的性能要求。基于 W e b 电子商务系统涉众所关注的问题各不相同,设计师应采纳有帮助的涉众的“建议”情况。开发阻止的管理层涉众:成本要低,人人都要干活。运营市场营销:性能突出,能很快投入市场,成本低。最终用户涉众:行为,性能,安全性,可用性,易用性。维护人员涉众:可修改性。客户涉众,:成本低,及时交付,不能频繁改动。

2)需求与质量

基于 JavaEE 的电子商务系统质量目标:安全性、高可用性、可扩充性、可修改性和高性能。

实现质量属性。实现质量属性依赖于基本的设计决策,即战术。实现系统各质量属性的战术的集合,称为“构架策略”。刺激->控制响应的战术->响应

“安全性”将负面影响软件系统并导致整个系统故障,在软件构架期应标识这些危险,才能在设计阶段排除或控制潜在的危险 [3] 。下面仅就系统的安全性属性说明实现质量属性的战术。下面给出了系统实现其质量属性的目标方式及所引用的战术 [4]。

目标

实现方式

所引用的战术

高性能

负载平衡,网络地址转换,代理服务器

引入并发,增加资源,多个副本

高可用性

冗余的处理器、网络、数据库和软件;负载平衡

主动冗余;事务;引入并发

可测试性

提供输入并捕获输出;内部监视

提供输入并捕获输出;内部监视

安全性

防护墙,公钥/密钥/加密

限制访问;完整性;限制暴露性

可修改性

将浏览器功能,数据库设计和业务逻辑分为不同层

抽象公共服务,语义一致性,仲裁者,接口稳定性

3)构架商业周期。系统根据涉众及质量属性所构架的商业周期。

涉众:              需求:                      构架

内容提供商              (质量属性)              商业组件

服务提供商                  高性能                      n层

开发人员                     高可用性                  客户机/服务器

软件提供商                  可修改性

技术支持                     易用性                      系统万维网

异构分布式计算           可测试性

设计师的经验              安全性

Internet和超文本

4 )设计构架

下面是现代电子商务系统的典型参考构架。浏览器/ 用户交互功能通常由 Web 浏览器来执行。业务规则和应用功能由应用服务器和事务服务器完成。

浏览器/用户交互<——>业务规则和应用<——>数据服务

电子商务系统的实现可由三层组成 [5] ,如图

 

 

 

 

 

 

 

 

                   四、总结

本文讨论了软件构架的有关理论和概念,从质量属性的角度出发,并结合电子商务项目实践,分别在高可用性、可修改性、高性能、安全性、可扩充性和易用性等质量需求方面的实现方式和战术进行了分析。在此基础上构架了电子商务结构中的一些部件及它们之间的联系成分。通过本文的论述和归纳,为软件体系结构和质量属性指导软件设计提供了可参考的实践经验 。

参考文献

[1] Len Bass.Paul Clements.Rick Kazman. Software Architecture in Practice

[M].北京: 清华大学出版社,2004: 6-10.

[2] 罗晓沛,侯炳辉.系统分析员教程[M]. 北京: 清华大学出版社.

2004:15-17.

[3] Roger S. Pressman. Software Engineering A Practitioner’s Approach

[M].北京: 机械工业出版社.2005:157-159.

[4] 谢希仁.计算机网络[M].北京:电子工业出版社.2005:368-373.

[5] Wendy Boggs Michael Boggs. UML与Rational Rose 2002 从入门到

精通[M].北京:电子工业出版社.2002:174-176.