【系统】软件系统可扩展性的研究

【关键字】系统
中国少年儿童队改名为中国少年先锋队软件系统可扩展性的研究
杨凯 北京邮电大学计算机科学与技术学院,北京(100876) E-mail:
摘要:业务的飞速发展促使软件开发者必须通过开发具有良好可扩展性,易维护性的软件, 迅速高效的满足用户不同的需求,本文对可扩展性理论进行了研究,并提出了一个可扩展性 解决方案,以便指导具有良好可扩展性的软件开发。
关键词:软件系统可扩展性;解决方案;灵活性
中图法分类号:TP311
1.引 言
业务的飞速发展促使软件开发者必须通过开发具有良好可扩展性,易维护性的软件,迅 速高
效的满足用户不同的需求。一般我们所希望的系统是这样的:当业务量较小的时候,可 以用一个处理能力较小的系统来实现,既节省投资又满足需求;当业务量大时,又可以通过 软件系统的扩展,提高处理能力,满足新的需求。并且在原有系统的基础上能较容易的添加 新的功能,并且尽可能小的影响原有系统。因此有必要对可扩展性理论进行研究,以便指导 具有良好可扩展性的软件开发。开发具有良好可移植性,可扩展性,易维护的软件产品可以 克服目前软件生产周期长,耗资大的困难[1]。
一般人们会觉得简单的系统比复杂的系统易于建造,易于维护,短小而且运行更快。但 实际上简洁性通常不是容易达到的目标,因为程序员倾向于在程序中支持可能在未来才会存 在的需求,这就使得系统变得复杂化。然而,因为觉得未来可能会发生什么变化而使代码变 得复杂并不是一个好主意(无数开发人员的经验表明主观对未来的预测总是错的)[2]。程序 员需要这样来编写代码:使程序在未来易于添加新的特性或修改现有的特性,而不是现在就 增加这些特性。因此与其一开始就建造一个复杂的系统,不如考虑开发出一个具有高扩展性 的系统。
2.可扩展性研究背景
一周立波秀2011集全集高清可扩展性是指软件扩展新功能的容易程度。可扩展性越好,表示软件适应“变化”的能力 越强。可扩展性是由现代软件的商业模式决定的[3]:
(1) 社会的商业越发达,需求变化就越快。需求变化必将导致修改(或者扩展)软件功 能,现代软件的规模和复杂性要比十年前的大得多(对比一下操作系统的变化就明白了), 如果软件的可扩展性比较差的话,那么修改(或者扩展)功能的代价会很高;
(2) 现代软件产品通常采用“增量开发模式”,开发商不断地推出软件产品的新版本,从
而不断地获取增值利润。如果软件的可扩展性比较差的话,每次开发新版本的代价就会很高
[4][5]。 具有良好可扩展性的系统绝不是仅仅将新的功能加入系统而不考虑其它方面。具有良好
可扩展性的系统要具备以下特性:
(1) 方便地添加新功能;
(2) 扩展后新旧系统之间具有良好的集成性;
(3) 扩展后系统仍能满足业务要求的性能,如及时性,可靠性等;
(4) 安全性得到满足。由于扩展过程中很容易产生安全问题,因此扩展过程中要有良好 的安全解决方案;
(5) 能够进行低成本扩展。 而一个具有可扩展的系统应该具备以下条件: (1)  有灵活的可扩展的体系结构作指导;
(2) 采用灵活的设计;
(3) 编写的代码具有可扩展性。 本文拟从以上几个方面进行可扩展性的研究。
3.可扩展性研究内容
3.1 灵活的可扩展的体系结构
目前软件领域存在着面向过程,面向东西,面向服务三个主要的体系结构。就扩展性而 言它们之间是一种逐渐灵活的关系。
面向过程是一种以事件为中心的编程思想,首先分析出解决问题的步骤,然后采用函数 逐步调用实现的方式。使用这种体系结构,系统一旦做出修改则“牵一发而动全身”,扩展 性极差。
面向东西技术是目前非常流行的方式。它把构成问题事务分解成各个东西,建立东西的 目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。它强 调东西的“抽象”、“封装”、“继承”和“多态”,以重用性、灵活性和扩展性为主要目标。随着 面向东西技术的发展,又催生了基于东西的组件体系结构。在组件开发中,需要进行接口设 计,这样软件实体就可以实现和公开其定义的关键部分。上述提到的抽象,封装,继承,多 态,接口,组件都是利于扩展的概念和技术。另外还有一个与可扩展性相关的概念:面向方 面的编程(AOP)。面向方面本质上就是满足扩展的需求,可以在程序中自由扩展功能。如 果说面向东西是纵向地分析、切割整个系统,那么可以认为 AOP 是横向地对系统作切片。 面向方面可以弥补面向东西的缺陷,两种方式有机的结合在一起,可以更加有效地对系统进 行分析。
面向服务(SOA)是最近比较热的概念。包括现在提到的 SaaS(Software as a service)。
SOA 由一系列相互交互的服务组成,描述了服务之间的交互,并将服务映射到一个或多个 具体技术的实现。面向服务是系统发布功能的一种方式,利用 Web Service 技术实现不同系 统间有效地通信和协作。由于 Web Service 的平台中立性和语言中立性使得跨平台的互操作 和系统的整合更加容易,因此与基于组件的架构模式相比,SOA 最大的优势在分布式环境 领域。SOA 与传统软件结构的比较如下表所示:
表 1 SOA 与传统软件结构的比较
鬼笔菌排污阀
分布式组件架构
SOA
面向功能
面向流程
设计目的是为了实现需求
设计目的是为了适应业务变化
开发周期长
mp3机交互式和重用性开发
成本为中心
业务为中心
应用阻塞
服务协调
喷射混凝土用速凝剂
紧密耦合
敏捷的松耦合
同构技术
异构技术
面向对象
面向服务
从上表中的对比中我们发现 SOA 面向流程,以业务为中心,松耦合这些特性都支持系 统的可扩展性。面向流程与面向东西的根本区别不仅仅是运营流程的不同,更重要的在于维 系企业的基本结构不同。在一个以业务流程为中心的企业中,企业的基本组成单位是不同的 业务流程,不存在刚性的部门,甚至业务流程本身也不是刚性的,而是随着市场的变化可以 随时增减改变的;SOA 的显著特点是采用松耦合,对于组成整个应用程序的每个服务的内 部结构和实现发生的逐渐的改变能够灵活适应,增强了系统的可扩展性。
通过上述分析面向服务的体系结构的优势是比较明显的。这种软件开发的理念值得推 广,而且已经得到应用。SOA 更多的是涉及到系统的外部,简单地说就是发布功能。它并 不关注系统内部结构的实现,所以说面向服务与面向东西并不冲突,系统内部结构完全可以 采用基于东西组件的软件体系结构。如果把 SOA 和面向东西的理念(而不是完全照搬和使 用)灵活应用于以后的开发设计中,将会帮助我们设计出更加优秀的架构。

本文发布于:2024-09-22 08:31:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/649284.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:系统   面向   可扩展性   软件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议