系统分析师学习笔记(十三)

软件架构设计

构件与软件复用

构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软件单元。在OO方法中,一个构件由一组对象构成,包含了一些协作的类的集合,它们共同工作来提供一种系统功能。

可复用性(可重用性)是指系统和(或)其组成部分能在其他系统中重复使用的程度。软件复用的形式可分为垂直式复用和水平式复用。水平式复用是复用不同应用领域中的软件元素,例如,数据结构、排序算法、人机界面构件等。标准函数库是一种典型的原始的水平式复用机制;垂直式复用是在一类具有较多公共性的应用领域之间复用软件构件。

主流构件标准

目前,主流的构件标准有OMG(Object Management Group,对象管理集团)的CORBA、Microsoft的COM(Component Object Model,构件对象模型)和DCOM(Distributed Component Object Model,分布式构件对象模型)和Sun的EJB(Enterprise JavaBean,Java 企业Bean)。

1.CORBA
CORBA技术规范,主要内容包括接口定义语言(Interface Definition Language,IDL)、接口池(Interface Repository,IR)、动态调用接口(Dynamic Invocation Interface,DII)和对象适配器(Object Adapter,OA)等。

CORBA定义了一种面向对象的构件开发方法,使不同的应用系统可以共享构件。每个对象都将其内部操作细节封装起来,同时又向外界提供精确定义的接口,从而降低了应用系统的复杂性,也降低了软件开发费用。

2.EJB
EJB是用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构建架构。使用EJB编写的应用程序具有可扩展性和交互性,以及多用户安全的特性。这些应用只需要写一次,就可以发布到任何支持EJB规范的服务器平台上。

3.COM/DCOM
Microsoft的COM定义了构件和它们的客户之间互相作用的方式,使得构件和客户端无需任何中介构件就能相互联系。DCOM扩展了COM,使其能够支持在局域 、广域 甚至Internet上不同计算机的对象之间的通信。

构件获取与管理

1.构件的获取
在基于构件的软件开发中,可以通过多种不同的途径来获取构件:

企业或项目组在进行以上决策时,必须考虑到不同方式获取构件的一次性成本和以后的维护成本(直接成本和间接成本),然后做出最优的选择。

2.构件的组织
可复用技术对构件库组织方法的要求是:

目前,已有的构件分类方法大致可以归纳为三大类,分别是关键字分类法、刻面(facet)分类法和超文本组织方法。

3.人员及权限管理
一般来说,构件库系统可包括五类用户,分别是注册用户、公共用户、构件提交者、普通管理员和超级管理员,他们对构件库分别有不同的职责和权限,这些人员相互协作,共同维护着构件库系统的正常运作。同时,系统为每种操作都定义一个权限,包括提交构件、管理构件、查询构件和下载构件等,每个用户可被赋予其中一项或多项操作权限。

构件复用的方法

1.检索与提取构件

2.理解与评价构件
逆向工程是理解构件的另一种重要手段。它试图通过对构件的分析,结合领域知识,半自动地生成相应的设计信息,然后借助设计信息完成对构件的理解和修改。

对构件可复用性的评价,是通过收集并分析构件的复用者在实际复用该构件的历史过程中的各种反馈信息来完成的。这些信息包括复用成功的次数、对构件的修改量、构件的健壮性度量和其他性能度量等。

3.修改构件
为了减少构件修改的工作量,要求开发人员尽量使构件的功能、行为和接口设计更为抽象化、通用化和参数化。这样,复用者即可通过对实参的选取来调整构件的功能或行为。如果这种调整仍不足以使构件适用于新系统,复用者就必须借助设计信息和文档来修改构件。因此,与构件有关的文档和抽象层次更高的设计信息对于构件的修改至关重要。

4.构件组装
构件组装技术大致可以分为三种,分别是基于功能的组装技术、基于数据的组装技术和面向对象的组装技术。

软件架构概述

软件架构研究的主要内容涉及软件架构描述、软件架构风格、软件架构评估和软件架构的形式化方法等。解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。

1.软件架构的意义

2.软件架构的发展史
纵观软件架构技术的发展过程,从最初的无结构设计到现行的基于架构的软件开发,可以认为经
历了4个阶段:

软件架构建模

以将软件架构的模型分为五种,分别是结构模型、框架模型、动态模型、过程模型和功能模型。

“4+1”视图模型从五个不同的视角来描述软件架构,每个视图只关心系统的一个侧面,五个视图结合在一起才能反映软件架构的全部内容。

软件架构风格

经典架构风格

1.数据流风格
数据流风格包括批处理序列和管道/过滤器两种风格。

2.调用/返回风格

3.独立构件风格
独立构件风格包括进程通信和事件驱动的系统。

4.虚拟机风格
虚拟机风格包括解释器和基于规则的系统。

5.仓库风格
仓库风格包括数据库系统、黑板系统和超文本系统。

层次架构风格

1.二层架构
客户机/服务器(Client/Server,C/S)架构是基于资源不对等,且为实现共享而提出来的。与集中式系统相比,C/S架构的优点主要在于,系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。

但随着企业规模的日益扩大,软件的复杂程度不断提高,C/S架构逐渐暴露出以下缺点:

2.三层C/S架构
与二层C/S架构相比,在三层C/S架构中,增加了一个应用服务器。可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。三层C/S架构将应用系统分成表示层、功能层和数据层三个部分。

与传统的二层架构相比,三层C/S架构具有以下优点:

3.B/S架构
浏览器/服务器(Browser/Server,B/S)架构是三层C/S架构的一种实现方式,其具体结构为“浏览器/Web服务器/数据库服务器”。

与C/S架构相比,B/S架构也有许多不足之处,例如,缺乏对动态页面的支持能力,没有集成有效的数据库处理功能;安全性难以控制;采用B/S架构的系统,在数据查询等响应速度上,要远远地低于C/S架构;B/S架构的数据提交一般以页面为单位,数据的动态交互性不强,不利于OLTP应用。

富互联 应用

RIA(Rich Internet Application,富互联 应用)是一个用户接口,它比用HTML实现的接口更加健壮、反应更加灵敏和更具有令人感兴趣的可视化特性。RIA结合了C/S架构反应速度快、交互性强的优点与B/S架构传播范围广及容易传播的特性,简化并改进了B/S架构的用户交互

1.RIA的概念
RIA是B/S架构的一种演变,“富”的含义有两种,分别是丰富的数据模型和丰富的用户界面。

RIA 具有C/S架构的特点,包括在消息确认和格式编排方面提供互动用户界面,在无刷新页面之下提供快捷的界面响应时间,提供通用的用户界面特性(例如,拖放操作、在线和离线操作能力等);RIA也具有B/S架构的特点,包括立即布署、跨平台、采用逐步下载来检索内容和数据,以及可以充分利用广泛采纳的互联 标准。在RIA中,数据能够被缓存在客户端,从而可以实现一个比基于HTML的响应速度更快且数据往返于服务器的次数更少的用户界面。

2.客户端开发技术
支持RIA的平台或工具主要有以下几个:

3.异步JavaScript和XML

使用AJAX的最大优点,就是能在不更新整个页面的前提下维护数据,这使得Web系统更为迅捷地回应用户动作,并避免了在 络上发送那些没有改变过的信息。进行AJAX开发时,需要慎重考虑 络延迟。不给予用户明确的回应,没有恰当的预读数据,或者对XMLHttpRequest的不恰当处理,都会使用户感到延迟。

面向服务的架构(Service-Oriented Architecture,SOA)

许多组织从不同的角度和不同的侧面对SOA进行了描述,较为典型的有以下三个:

SOA概述

在SOA模型中,所有的功能都定义成了独立的服务。服务之间通过交互和协调完成业务的整体逻辑。所有的服务通过服务总线或流程管理器来连接。

1.服务的基本结构
服务模型的表示层从逻辑层分离出来,中间增加了服务对外的接口层。通过服务接口的标准化描述,使得服务可以提供给在任何异构平台和任何用户接口使用。

2.SOA设计原则
关于服务,一些常见的设计原则如下:

3.服务构件与传统构件
服务构件架构(Service Component Architecture,SCA)是基于SOA的思想描述服务之间组合和协作的规范,它描述用于使用SOA构建应用程序和系统的模型。

SCA服务构件与传统构件的主要区别在于,服务构件往往是粗粒度的,而传统构件以细粒度居多;服务构件的接口是标准的,主要是服务描述语言接口,而传统构件常以具体API形式出现;服务构件的实现与语言是无关的,而传统构件常绑定某种特定的语言;服务构件可以通过构件容器提供QoS的服务,而传统构件完全由程序代码直接控制。

SOA的关键技术

1.UDDI
UDDI(Universal Description Discovery and Integration,统一描述、发现和集成)提供了一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。

在UDDI技术规范中,主要包含以下三个部分的内容:

2.WSDL
WSDL(Web Service Description Language,Web服务描述语言)是对服务进行描述的语言,它有一套基于XML的语法定义。

3.SOAP
SOAP(Simple Object Access Protocol,简单对象访问协议)定义了服务请求者和服务提供者之间的消息传输规范。SOAP用XML来格式化消息,用HTTP来承载消息。SOAP主要包括以下四个部分:

SOAP消息包括以下三个部分:

4.REST
REST(Representational State Transfer,表述性状态转移)是一种只使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。REST提出了如下一些设计概念和准则:

SOA的实现方法

目前,实现SOA的方法也比较多,其中主流方式有Web Service、企业服务总线和服务注册表。

1.Web Service
在Web Service(Web服务)的解决方案中,一共有三种工作角色,其中服务提供者和服务请求者是必须的,服务注册中心是一个可选的角色。

Web Service模型中的操作包括发布、查找和绑定,这些操作可以单次或反复出现。

在采用Web Service作为SOA的实现技术时,应用系统大致可以分为六个层次,分别是底层传输层、服务通信协议层、服务描述层、服务层、业务流程层和服务注册层。

2.服务注册表
大多数商用服务注册产品支持服务注册、服务位置和服务绑定功能。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月5日
下一篇 2021年4月5日

相关推荐