当前位置: 首页 > article >正文

系统架构设计师-第13章-层次式架构设计理论与实践-软考学习笔记

层次式体系结构概述

软件体系结构可定义为: 软件体系结构为软件系统提供了结构、行为和属性的高级抽象,由构成系统的元素描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成

软件体系结构考察:

1、利益相关人员之间的交流

2、系统设计的前期决策

3、可传递的系统抽象

软件层次式体系结构是最通用的架构,也被叫作N 层架构模式( n-tier architecture pattem ) 。

表现层(或称为展示层〉、中间层(或称为业务层〉、数据访问层(或称为持久居)和数据层

分层架构设计注意点

(1) 要注意的是污水池反模式。
所谓污水池反模式( architecture sinkhole anti-partem) , 就是请求流简单地穿过几个层, 每
层里面基本没有做任何业务逻辑,或者做了很少的业务逻辑。

(2) 需要考虑的是分层架构可能会让你的应用变得庞大。

表现层框架设计

表现层设计模式

1. MVC 模式

MVC 强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了控制器、模型、视图三个核心模块。

MVC 模式优点:1、允许多用户界面的扩展;2、易于维护;3、功能强大的用户界面

2. MVP 模式

MVP ( Model-View-Presenter ) 模式提供数据, View 负责显示, Controllerl Presenter 负责逻
辑的处理。

MVP 是从经典的模式MVC 演变而来,它们的基本思想有相通的地方: Controller/Presenter 负责逻辑的处理, Model 提供数据, View 负责显示。

MVP模式有点:

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

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

3、可以讲一个Presenter用于多个视图,而不需要改变Presenter的逻辑。

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

3. MVVM模式

MWM 模式正是为解决MVP 中UI 种类变多,接口也会不断增加的问题而提出的。

使用XML设计表现层,统一WebForm与Windows Form的外观

表现层中UIP设计思想

表现层动态生成设计思想

中间层架构设计

业务逻辑层组件设计

业务逻辑组件分为接口和实现类两个部分。

1. 业务逻辑组件的实现类
2. 业务逻辑组件的配置

业务逻辑层工作流设计

( 1) interface 1 : 过程工主义导入/导出接口。这个接口的特点是:转换格式和API 调用,从而支持过程定义伯息间的互相转换。这个接口也支持己完成的过程定义或过相定义的一部分之间的互相转换。阜期标准是WPDL, 后来发展为XPDL 。
(2) interface 2: 客户端应用程序接口。通过这个接口工作流机可以与任务表处理器交互,代表用户资源米组织任务。然后由任务表处理器负责,从任务表叶1 硅摊、推进任务项。由任务表处理器或有终端用户来控制应用工具的活动。
( 3 ) interface 3: 应用程序调用接口。允许工作流机直接激活一个同用.LJl: ,来执行一个活动。典型的是调用以后台服务为主的应用程序,没有用户接口。当执行活动要用到的工只,需要与终端用户交豆,通常是使用客户端应用程序接口来调用那个i具,这样可以为用户安排任务时间表提供更多的灵活性。
( 4 ) interface 4 : 工作流机协作接口。其目标是定义相关标准,以便不同开发商的工作流系统产品相丘问能够进行无缝的任务项传递。WFMC 定义了4 个协同工作模型, 包含多种胁同工作能力级别。
( 5) interface 5: 管理和监视接口

用工作流的思想组织业务逻辑的优点:

将应用逻辑与过程逻辑分离,在不修改具体功能的情况下,通过修改过程模型改变系统功能, 完成对生产经营部分过程或全过程的集成管理,可有效地把人、信息和应用工具合理地组织在一起, 发挥系统的最大效能。

业务逻辑层实体设计

将业务逻辑层实体表示为XML 的优点如下。
(1)标准支持。XML 是World Wide Web Consortium CW3C ) 的标准数据表示格式。
(2) 灵活性。X扎在L 能够表示信息的层次结构和集合。
(3)互操作性。在所有平台上, XML 都是与外部各方及贸易伙伴交换信息的理想选择。

将业务逻辑层实体表示为通用DataSet 的优点如下。
(1)灵活性。OataSet 可以包含数据的集合,能够表示复杂的数据关系。
(2) 序列化。在层间传递时, DataSet 本身支持序列化。
(3)数据绑定.可以把OataSet 绑定到ASP.NET 应用程序和Window5 窗体应用程序的任意用户界面控件.
(4) 排序与过滤.可以使用DataView 对象排序和过滤DataSet o 应用程序可以为同一个DataSet 创建多个OataVìew 对象,以使用不同方式查看数据。
(5) 与泊在L 的互换性。可以用XML 格式读写DataSet。
(6) 开放式并发.在更新数据时,可以配合使用数据适配器与DataSet 方便地执行开放式并发检查。
(7) 可扩展性。

将业务边辅层实体表示为有类型的DataSet 的优点如下。
(1) 代码易读。要防问有类型的DataSet 中的表和列,可以使用有类型的方法和属性。
(2) 有类型的方法和属性的提供使得使用有类型的DataSet 比使用通用OataSet 更方便。使用有类型的DataSet 时, lntelliSense 将可用。
(3)编译时类型枪奇,无效的表名称和列名称将在编译时而不是在运行时检测。

业务逻辑层框架

业务框架位于系统架构的中间层,是实现系统功能的核心组件。

在业务容器中,业务逻辑是按照Domain Model-Service-Control 思想来实现的。

(1) Domain Model 是领域层业务对象,它仅仅包含业务相关的属性。
(2) Service 是业务过程实现的组成部分,是应用程序的不同功能单元,通过在这些服务之间定义良好的接口和契约联系起来。
(3) Control 服务控制器,是服务之问的纽带,不同服务之间的切换就是通过它来实现的。

Domaín Model-Service-Control 三者的互动关系.
(1) Service 的运行会依赖于Domain Model 的状态,反之, Service 也会根据业务规则改变Domain Model 的状态。
(2) Control 作为服务撞制措,根据Domain Model 的状态和相关参数决定Service 之间的执行顺序及相互关系。

数据访问层设计

5种数据访问模式

1、在线访问
2、DataAccess Object

一个典型的DAO 实现通常有以下组件。
(1) 一个DAO 工厂类。
(2) 一个DAO 接口。
(3) 一个实现了DAO 接口的具体类。
(4) 数据传输对象。

3. Data Transfer Object
4 . 离钱数据模式
5. 对象/关系映射( ObjecVRelation Mapping , O/R Mapping )

工厂模式在数据访问层应用

ORM 、Hibernate与CMP2.0设计思想

灵活运用XMLSchema

事务处理设计

ACTD 是原子性(Atomicity )、一致性(Consistency )、隔离性(Isolation) 和持久性(Durabi1ity )的缩写。

事务的原子性表示事务执行过程rþ 的任何失败都将导致事务所做的任何修改失效。

一致性表示当事务执行失败时,所有被该事务影响的数据都用该恢复到事务执行前的状态。

隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。

持久性表示己提交的数据在事务执行失败时,数据的状态都应该正确。

1. JavaBean 中使用JDBC 方式进行事务处理
2. SessionBean 中的JTA 事务

连接对象管理设计

所谓静态,是指池中的连接是在系统初始化时就分配好的,并且不能够随意关闭。

数据架构规划与设计

数据架构规划与设计是指在建立一个数据库系统时,通过对数据资源进行整体性的规划和设计,达到系统资源的合理利用和管理。

数据架构规划与设计需要遵循以下步骤:

1.需求分析:确定建立数据库的目的及其应用范围,明确数据处理的要求和需求。

2.概念设计:将需求分析所得到的信息抽象成各种概念模型,包括实体模型、属性模型和关系模型等,从而形成数据库设计的概念框架。

3.逻辑设计:在概念设计的基础上,构建数据库结构所需的各种对象和元素,如表、字段、键等,形成逻辑模型。

4.物理设计:在逻辑设计的基础上,根据硬件和软件资源的限制,结合性能要求,设计具体的数据库结构。

5.实施和维护:在完成数据库的设计后,需要进行实施和维护,确保其正常运行和持续发挥作用。

数据架构规划与设计需要遵循数据库设计的基本原则,如数据独立性、数据完整性、灵活性和易维护性等,同时也需要考虑数据安全和备份机制等方面。

数据库设计与类的设计融合

数据库设计与XML设计融合

XML 文档分为两类:

一类是以数据为中心的文挡,这种文挡在结构上是规则的,在内容上是同构的, 具有较少的混合内容和嵌套层次,人们只关心文档的数据而并不关心数据元素的存放顺序,这种文挡简称为数据文挡,它常用来存储和传输Web 数据。

另一类是以文档为中心的文档,这种文的的结构不规则,内容比较零散,具有较多的混合内容,并且元素之间的顺序是有关的,这种文档常用来在网页上发布描述性信息、产品品性能介绍和E-mail 信息等。

的XML 文档的存储方式有两种:基于文件的存储方式和数据库存储方式。

物联网层次架构设计

物联网可以分为三个层次

底层是用来感知数据的感知层, 即利用传感器、二维码、RFID等设备随时随地获取物体的信息。

第二层是数据传输处理的网络层, 即通过各种传感网络与互联网的融合, 将对象当前的信息实时准确地传递出去。

第三层则是与行业需求结合的应用层,即通过智能计算、云计算等将对象进行智能化控制。

层次式架构案例分析

电子商务网站(网上商店PetShop)

基于物联网架构的电子小票服务系统

以下是一个层次式架构案例:

1. 用户界面层:该层是与用户进行交互的层,由各种用户界面组件组成,例如表单、按钮、文本框等。用户输入的数据被收集和传送到业务逻辑层处理。

2. 业务逻辑层:该层包含了业务流程和数据处理逻辑。在这一层,输入的数据被验证和处理,并生成业务逻辑需要的数据。该层还负责与数据访问层进行交互,以便在需要保存或检索数据时调用。

3. 数据访问层:该层是对数据的访问和操作的抽象。该层包含对数据存储的直接访问,例如数据库或文件系统。该层还包含对数据的检索、更新和删除等操作。

通过这种层次式架构,系统可以轻松地进行复杂业务逻辑和数据操作,还可以为未来的需求变化提供灵活性和可扩展性。


http://www.kler.cn/a/108176.html

相关文章:

  • 人脸识别技术:从算法到深度学习的全面解析
  • golang分布式缓存项目 Day1 LRU 缓存淘汰策略
  • 单例模式详解:如何优雅地实现线程安全的单例
  • 基于表格滚动截屏(表格全部展开,没有滚动条)
  • macOS 设置固定IP
  • OpenEuler 下 Docker 安装、配置与测试实例
  • Android蓝牙 - 常用蓝牙配置文件
  • 3D模型怎么贴法线贴图?
  • element的tabs组件使用问题解决
  • Java集成腾讯云OCR身份证识别接口
  • cosover是什么?crossover23又是什么软件
  • MAC下安装Python
  • Linux网络基础
  • IOC课程整理-15 Spring 类型转换
  • JavaScript_对象_Function_定义与参数
  • 文章分类管理接口
  • Gin vs Beego: Golang的Web框架之争
  • Vue 路由传参和获取参数的方法
  • C++类模板再学习
  • 闭包通俗解释,Demo(Go Java Python)
  • winodos下使用VS2022编译eclipse-paho.mqtt.c并演示简单使用的 demo
  • pytest方法间变量值传递--request夹具
  • ajax有哪些优缺点?
  • Azure - 机器学习:使用 Apache Spark 进行交互式数据整理
  • MySQL篇---第五篇
  • SSM宾馆客房管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目