系统架构设计师-软件架构设计(5)

目录

一、构件与中间件技术

        1、软件复用

        2、构件与中间件技术的概念

        3、构件的复用

                3.1 检索与提取构件

                3.2 理解与评价构件

                3.3 修改构件

                3.4 组装构件

        4、中间件

                4.1 采用中间件技术的优点:

                4.2 中间件的分类:

        5、构件标准

                5.1 CORBA(公共对象请求代理体系结构)

                5.2 J2EE【EJB】

                5.3 DNA2000

二、C/S架构与B/S架构

三、常用层次架构

        1、MVC架构风格

        2、MVP架构风格

        3、MVVM架构风格

四、RIA架构风格

五、数据访问模式

六、数据访问设计层


一、构件与中间件技术

        1、软件复用

                软件复用【重用】是多次不同的软件开发过程中重复使用相同或相似【软件元素】的过程。

                【软件元素】

                例:需求分析文档、设计过程、设计文档、程序代码、测绘用力、领域知识等。

                【复用的历史发展路线】

系统架构设计师-软件架构设计(5)_第1张图片                【复用的维度】

                水平复用:不分行业领域,通用。

                垂直复用:分行业领域,专用。

        2、构件与中间件技术的概念

               【构件的定义 】

                定义1:软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖。软件构件可以被独立地部署并由第三方任意组装。

                定义2:构件是系统中有价值的、几乎独立的并可替换的一部分,它在良好定义的体系结构语境内满足某清晰的功能。

                定义3:构件是一个独立发布的功能部分,可以通过其接口访问它的服务。

系统架构设计师-软件架构设计(5)_第2张图片

        3、构件的复用

                3.1 检索与提取构件

                (1)基于关键字的检索

                        特点:树形或有向无回路图结构

                (2)刻面检索法

                        特点:利用Facet描述构件执行的功能、被操作的数据、构件应用的语境或任意其它特征。

                        例如:分多个刻面:应用领域、使用环境、功能

                (3)超文本检索法 

                        特点:按照人类的联想思维方式任意跳转到相关概念或构件的文档。

                3.2 理解与评价构件

                (1)要复用构件,准确的理解构件至关重要。特别是对构件修改使用时。

                (2)为达到目的,必须要求构件的开发过程遵循公共标准

                (3)一般构件库的文档中全面而准确地说明以下内容:

                        构件的功能与行为、相关的领域知识、可适应性约束条件与例外情形、可以预见的的修改部分及修改方法。

                3.3 修改构件

                (1)理想状态是直接复用构件库中现成的构件,但大多数情况下,必须对构件进行或多或少的修改,以应对新需求。

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

                (3)构件库中若无可修改使用的构件,则按新需求开发构件,并存入构件库。

                3.4 组装构件

                组装的三种方式:

                (1)基于功能的组装:采用子程序调用和参数传递的方式将构件组装起来。

                (2)基于数据的组装:仍然是传统的子程序调用与参数传递。但它所依赖的软件设计方法不再是功能分解,而是面向数据的设计方法,例如Jackson系统开发方法。

                (3)面向对象的组装:如果从类库中检索出来的基类能够完全满足新系统的需求,则可以直接应用。否则,必须以基类为父类,生成相应的子类,以满足新系统的需求。

                构件组装失配问题:

                (1)由构件引起的失配,包括由于系统对构件基础设施、构件控制模型和构件数据模型的假设存在冲突引起的失配。

                (2)由连接子引起的失配,包括由于系统对构件交互协议、连接子数据模型的假设存在冲突引起的失配。

                (3)由于系统成分对全局体系结构的假设存在冲突引起的失配等。要解决失配问题,首先需要检测出失配问题,并在此基础上通过适当的手段消除检测出的失配问题。

        4、中间件

                中间件是一类构件。中间件是一类系统软件

系统架构设计师-软件架构设计(5)_第3张图片

                 简化结构、屏蔽差异、利于复用

                4.1 采用中间件技术的优点:

                (1)面向需求。即设计师集中精力于业务逻辑本身。

                (2)业务的分割和包容性。应用开发人员可以按照不同的业务进行功能的划分,体现为不同的接口或交互模式。

                (3)设计与实现隔离。构件对外发生作用或构件间的交互,都是通过接口进行的,构件使用者只需要知道构件的接口,而不必关心其内部实现,这是设计与实现分离的关键。

                (4)隔离复杂的系统资源。架构很重要的一个功能就是将系统资源与应用构件隔离,这是保证构件可复用甚至 “即插即用” 的基础,与中间件的意图也是一致的。

                (5)符合标准的交互模型。中间件则实现了架构的模型,实现了标准的协议。

                (6)软件复用。中间件提供了构件封装、交互规则、与环境的隔离等机制,这些都为软件复用提供了方便的解决方案。。

                (7)提供对应构件的管理。基于中间件的软件可以方便地进行管理,因为构件总可以通过标识机制进行划分。

        

                4.2 中间件的分类:

系统架构设计师-软件架构设计(5)_第4张图片

        5、构件标准

                三大构件标准:CORBA、J2EE【EJB】、DNA2000。

                5.1 CORBA(公共对象请求代理体系结构)

                        是由OMG组织制订的一种标准的面向对象应用程序体系规范。为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。

系统架构设计师-软件架构设计(5)_第5张图片

         伺服对象(Servant):CORBA对象的真正实现,负责完成客户端请求。

        对象适配器(Object Adapter):用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口,以便他们使用ORB内部的某些功能。

        对象请求代理(Object Request Broker):解释调用并负责查找实现该请求的对象,将参数传给找到的对象,并调用方法返回结果。客户不需要了解服务对象的位置、通信方式、实现、激活或存储机制

                5.2 J2EE【EJB】

                (1)会话bean:实现业务逻辑,负责完成服务端与客户端的交互。

                (2)实体bean:实现O/R映射,简化数据库开发工作。

                (3)消息驱动bean:处理并发与异常访问。

                5.3 DNA2000

二、C/S架构与B/S架构

系统架构设计师-软件架构设计(5)_第6张图片

系统架构设计师-软件架构设计(5)_第7张图片系统架构设计师-软件架构设计(5)_第8张图片

三、常用层次架构

系统架构设计师-软件架构设计(5)_第9张图片

        1、MVC架构风格

系统架构设计师-软件架构设计(5)_第10张图片

                - Model(模型):应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型通为多个视图提供数据。提高应用的可重用性。

                - View(视图):用户看到并与之交互的界面。接受用户数据,向用户展示数据。

                - Controller(控制器):用户界面与Model的接口。解释视图的输入,将其解释为系统能够理解的对象,同时识别用户运作,将其解释为对模型特定方法的调用。处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。

                J2EE体系结构中:

                - 视图(View):JSP

                - 控制(Cpntroller):Servlet

                - 模型(Model):Entity Bean、Session Bean

        2、MVP架构风格

系统架构设计师-软件架构设计(5)_第11张图片

                MVP是MVC的变种,其优点包括:

                (1)模型与视图完全分离,可以修改视图而不影响模型。

                (2)可以更高效的使用模型,因为所有交互都发生在一个地方【Presenter】内部。

                (3)可以将一个Presenter用于多个视图,而不需要改变Presenter逻辑。

                (4)如果把逻辑放在Presenter,就可以脱离用户接口来测试这些逻辑(单元测试)。

        3、MVVM架构风格

系统架构设计师-软件架构设计(5)_第12张图片

四、RIA架构风格

系统架构设计师-软件架构设计(5)_第13张图片

         【优点】:

        (1)反应速度快(2)易于传播(3)交互性强

五、数据访问模式

系统架构设计师-软件架构设计(5)_第14张图片

六、数据访问设计层

        ORM(Object Relational Mapping):对象与关系数据之间的映射。

        映射关系表         系统架构设计师-软件架构设计(5)_第15张图片

         实现技术对比表 系统架构设计师-软件架构设计(5)_第16张图片

你可能感兴趣的:(软考高级,系统架构师,软件工程,系统架构)