【架构设计】第13章 层次式架构设计 2/2

架构设计 相关文档,希望互相学习,********************************************************共同进步

风123456789~-CSDN博客


系统架构设计 相关文章

【架构专栏】架构考试介绍

【架构专栏】架构知识点


知识总览

共19章内容,主要包括:

1)1绪论、2计算机系统、3信息系统、4信息安全技术、5软件工程

2)6数据库设计、7系统架构设计基础知识

3)8系统质量属性与架构评估、9软件可靠性、

10软件架构演化与维护、11未来信息综合技术

4)12信息系统架构设计、13层次式架构设计、14云原生架构设计、

15面向服务架构设计、16嵌入式系统架构设计、17通信系统架构设计、

18安全架构设计、19大数据架构设计

每天进步一点点,加油!小伙伴们!💪


本文学习 第13章 层次式架构设计,以下为个人笔记,希望有所帮助,共同学习。

(涉及单选题型 约占2~5分 、案例题,来源于实际应用,灵活运用知识点)

包括:

层次式体系结构概述、

表现层设计模式(MVC模式、MVP模式、MVVM模式;使用XML 设计表现层,统 一WebForm与 WinForm的外观;UIP设计思想;动态生成设计思想)、

中间层架构设计(业务逻辑层 组件设计、工作流设计、实体设计、框架)

数据访问层设计(5种数据访问模式、工厂模式在数据访问层应用、设计思想、灵活运用XML、事务处理设计、连接对象管理设计)

数据架构规划与设计(数据库设计与类的设计融合、数据库设计与XML设计融合)、

物联网层次架构设计、

层次式架构案例分析(电子商务网站、基于物联网架构的电子小票服务系统)。

第13章 层次式架构设计

本章主要学习层次式架构设计理论与实践,会涉及单选题型(约占 2~5 分)和案例题,偏重于方法的掌握和应用,概念知识的考查内容多数来源于实际应用, 还需要灵活运用相关知识点。

13.1 - 13.3 层次式体系结构概述、表现层框架设计、中间层架构设计

【架构设计】第13章 层次式架构设计 1/2https://blog.csdn.net/weixin_42081167/article/details/166016218

13.4 数据访问层设计

13.4.1 五种数据访问模式

数据访问模式有 5 种,分别是:在线访问、Data Access Object、Data Transfer Object、离线数据模式、对象/关系映射(Object/Relation Mapping)。

1.在线访问

最基本的数据访问模式,实际开发最常用

最常用的方式。访问占用一个数据库连接,读取数据,每个数据库操作都会通过这个连接不断地与后台的数据源进行交互。

  1. DataAccess Object

是标准 J2EE 设计模式之一

DAO 将底层数据访问操作与高层业务逻辑分离开。一个典型的 DAO 实现通常会有一个 DAO 工厂类、一个 DAO 接口、一个实现了 DAO 接口的具体类、数据传输对象。

3.Data Transfer Object

DTO 是经典 EJB 设计模式之一

DTO是一组对象或是数据的容器,需跨不同的进程或是网络的边界来传输数据。

对象本身不包含具体的业务逻辑,且对象内部只能进行一些诸如内部一致性检查和基本验证之类的方法,且这些方法不再调用其他的对象行为。

4.离线数据模式

离线数据模式是以数据为中心,数据从数据源获取之后,将按照某种预 定义的结构存放在系统中,成为应用的中心。

这种方式对数据的各种操作独立于各种与后台数据源之间的连接或是事务。

5.对象/关系映射 (ORMapping)

这种方式利用工具或平台能够帮助将应用程序中的数据转换成关系型数据库中的记录;或是将关系数据库中的记录转换成应用程序中代码便于操作的对象。

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

工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。这里可能会处理对多种数据库的操作,因此,需要首先定义一个操纵数据库的接口,然后根据数据库的不同,由类工厂决定实例化哪个类。
首先定义一个操纵数据库的接口DataAccess,然后根据数据库的不同,由类工厂决定实例化哪个类。因为DataAccess的具体实现类有一些共同的方法,所以先从DataAccess实现一个抽象的AbstractDataAccess类,包含公用方法。然后,分别为SQLServer、Oracle和OleDb数据库编写三个数据访问的具体实现类。然后,创建一个Factory类,来实现自动数据库切换的管理。此类很简单,主要的功能就是根据数据库类型,返回适当的数据库操纵类。

13.4.3 ORM、Hibernate与CMP2.0设计思想

ORM(Object-Relation Mapping)在关系型数据库和对象之间作一个映射,这样,在具体操纵 数据库时,就不需要再去和复杂的 SQL 语句打交道,只要像平时操作对象一样操作即可。

Hibernate 是一个功能强大,可以有效地进行数据库数据到业务对象的 O/R 映射方案。Hibernate 推动了基 于普通 Java 对象模型,用于映射底层数据结构的持久对象的开发。

Hibernate是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装, 使Java程序员可以随心所欲地使用对象编程思维来操纵数据库。它不仅提供了从 Java类到数据表之间的映射,还提供了数据查询和恢复机制。相对于使用J D B C和 S Q L来手工操作数据库, Hibernate可以大大减少操作数据库的工作量。另外, Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的 Hibernate XML 代码的编写量。 Hibernate可以和多种 W e b服务器或者应用 属性 映射 服务器良好集成,如今已经支持几乎所有流行的数据库服务器。

数据库 Hibernate技术本质上是一个提供数据库服务的中间件,它的架构如下:

13.4.4灵活运用XML Schema

XML Schema 用来描述 XML 文档合法结构、内容和限制,提供丰富的数据类型。
XML文档分为两类:

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

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

13.4.5 事务处理设计

事务必须服从 ISO/IEC 所制定的 ACID 原则。即 原子性(Atomicity)、一致性 (Consistency)、隔离性(Isolation)、持久性(Durability)的缩写。

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

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

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

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

1.JavaBean 中使用 J D B C方式进行事务处理

2.SessionBean 中的JTA事务

1. JavaBean中使用JDBC方式进行事务处理。

在JDBC中,打开一个连接对象Connection时,默认是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动地得到事务确认。为了能将多个SQL语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit() 方法,SQL语句不会得到事务确认。在最近一次commit() 方法调用之后的所有SQL会在方法commit() 调用时得到确认。

2.SessionBean 中的JTA事务

在 Java EE企业级应用开发中,Session Bean 是业务逻辑的核心载体,而 JTA(Java Transaction API)则是实现分布式事务管理的标准规范。在 Session Bean 中使用 JTA 事务,主要涉及两种管理模式:‌容器管理事务(CMT) ‌和‌Bean 管理事务(BMT)

1)容器管理事务 (Container-Managed Transactions, CMT)

这是最推荐且最常用的方式,因为事务边界由 EJB 容器自动管理,开发者无需编写显式的事务控制代码。‌

(1)开发者通过注解(如 @TransactionAttribute)或部署描述符指定事务属性。

(2)容器在方法调用前自动开始事务,在方法正常结束后自动提交,或在抛出运行时异常时自动回滚。

(3)Hibernate 等持久层框架获得的 DataSource 连接会自动加入当前的全局 JTA 事务

2)Bean 管理事务 (Bean-Managed Transactions, BMT)

适用于需要精细控制事务边界、在单个方法中管理多个独立事务或与非事务性资源交互的场景。

(1)开发者直接在代码中使用 javax.transaction.UserTransaction 接口来显式控制事务的开始、提交和回滚。

(2)必须通过 @Resource 注入 UserTransaction 对象。

JTA 与 JDBC 事务的区别
  • 范围‌:JDBC 事务仅限于单个数据库连接;JTA 事务可以跨越多个数据库、消息队列等不同资源。
  • 协议‌:JTA 底层通常基于 XA 协议,支持两阶段提交(2PC),确保分布式环境下的原子性。
  • 性能‌:JTA 由于涉及协调者和多个参与者的通信,开销比本地 JDBC 事务大。因此,仅在确实需要跨资源一致性时才使用 JTA。

13.4.6 连接对象管理设计

连接对象管理设计:通过资源池解决资源频繁分配、释放所造成的问题。

建立一个数据库连接池,提供一套高效的连接分配、使用策略,保证了数据库连接的有效复用。
◆建立连接池的第一步,就是要建立一个静态的连接池。所谓静态,是指池中的连接是在系统初始化时就分配好的,并且不能够随意关闭。Java中给我们提供了很多容器类,可以方便地用来构建连接池,如Vector、Stack等。在系统初始化时,根据配置创建连接并放置在连接池中,以后所使用的连接都是从该连接池中获取的,这样就可以避免连接随意建立、关闭造成的开销。

◆有了连接池,就可以提供一套自定义的分配、释放策略。当客户请求数据库连接时,首先看连接池中是否有未分配出去的连接。如果存在空闲连接则把连接分配给客户,并标记该连接为已分配。若连接池中没有空闲连接,就在已经分配出去的连接中,寻找一个合适的连接给客户,此时该连接在多个客户间复用。

◆当客户释放数据库连接时,可以根据该连接是否被复用,进行不同的处理。如果连接没有使用者,就放入到连接池中,而不是被关闭。

13.5 数据架构规划与设计

(1)数据库设计与类的设计融合

对类和类之间关系的正确识别是数据模型的关键所在。好模型的目标是将工程项目整个生存期内的花费减至最小,同时也会考虑到随时间的推移系统将可能发生的变化,因而设计时也要考虑能适应这些变化。

(2)数据库设计与 XML 设计融合

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

A.基于文件的存储方式 。基于文件的存储方式是指将XML文档按其原始文本形式存储,主要存储技术包括操作系统文件库、通用文档管理系统和传统数据库的列。这种存储方式需维护某种类型的附加索引,以建立文件之间的层次结构。

基于文件的存储方式的特点:无法获取XML文档中的结构化数据;通过附加索引可以定位具有某些关键字的XML文档,一旦关键字不确定,将很难定位;查询时,只能以原始文档的形式返回,即不能获取文档内部信息;文件管理存在容量大、管理难的缺点。

B.数据库存储方式 。数据库在数据管理方面具有管理方便、存储占用空间小、检索速度快、修改效率高和安全性好等优点。一种比较自然的想法是采用数据库对XML文档进行存取和操作,这样可以利用相对成熟的数据库技术处理XML文档内部的数据。

数据库存储方式的特点:能够管理结构化和半结构化数据;具有管理和控制整个文档集合本身的能力;可以对文档内部的数据进行操作;具有数据库技术的特性,如多用户、并发控制和一致性约束等;管理方便,易于操作。

13.6 物联网层次架构设计

◆物联网可以分为三个层次,底层是用来感知数据的感知层,即利用传感器、二维码、RFID等设备随时随地获取物体的信息。第二层是数据传输处理的网络层,即通过各种传感网络与互联网的融合,将对象当前的信息实时准确地传递出去。第三层则是与行业需求结合的应用层,即通过智能计算、云计算等将对象进行智能化控制。

三个层次:感知层(感知数据)、网络层 ( 数据传输处理) 、应用层(与行业需求结合)

(1)感知层:用于识别物体、采集信息。感知层包括二维码标签和识读器、RFID 标签和读 写器、摄像头、GPS、传感器、M2M 终端、传感器网关等,主要功能是识别对象、采集信息,与人体结构中皮肤和五官的作用类似。

感知层解决的是人类世界和物理世界的数据获取问题。

(2)网络层:用于传递信息和处理信息。网络层包括通信网与互联网的融合网络、网络管理 中心、信息中心和智能处理中心等。网络层将感知层获取的信息进行传递和处理,类似于人体结构中的神经中枢和大脑。

网络层解决的是传输和预处理感知层所获得数据的问题。

(3)应用层:实现广泛智能化。应用层是物联网与行业专业技术的深度融合,结合行业需求实现行业智能化,这类似于人们的社会分工。物联网应用层利用经过分析处理的感知数据,为用户提供丰富的特定服务。

应用层解决的是信息处理和人机交互的问题。

13.7 层次式架构案例分析

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

PetShop是一个范例,微软用它来展示,Net 企业系统开发的能力。 PetShop 随着版本的不断 更新,至现在基于.Net 2.0 的 PetShop 4.0 为止,整个设计逐渐变得成熟而优雅,有很多可以借 鉴之处。 PetShop 是一个小型的项目,系统架构与代码都比较简单,却也凸现了许多颇有价值的 设计与开发理念。PetShop 的表示层是用ASPNet设计的,B/S系统

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

1.电子小票物联网架构

采用感知层、网络层、用用层的3层 物联网体系架构模型:

感知层的小票智能硬件能够取代传统的小票打印机,在不改变商家原有收银系统的前提下,采集收银机待打印的购物小票信息,通过Wi-Fi/GPRS传输将其存储到电子小票云平台。

网络层支持感知层电子小票信息的传输、处理和存储,并为顾客和线下商家的应用提供服务支撑,实现的功能为:数据传输与处理、数据存储、智能硬件设备管理、商家管理、会员管 理和商品管理等。

应用层是电子小票服务系统与顾客、商家的接口,包括云平台小票服务和数据服务:云平台小票服务基于微信公众平台向顾客提供电子小票实时推送、历史小票查询和会员积分查询等 服务;云平台数据服务向线下零售商家提供可视化经营数据管理、用户精准推荐和区域畅销品 排名等服务

2.电子小票服务系统架构

电子小票服务系统由小票智能硬件、商家收银机、电子小票云平台、微信公众平台、消费 者智能手机和商家P C终端构成。

题目:

1.事务必须服从 ISO/IEC 所制定的 ACID 原则。关于 ACID,以下说法错误的是( )。

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

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

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

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

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

答案:C

2.物联网的感知层用于识别物体、采集信息。下列( )不属于感知层设备。

A.摄像头 B.GPS C.扫描仪 D.指纹

解析:感知层主要功能是识别对象、采集信息,与人体结构中皮肤和五官的作用类似。

但指纹是人的特征属性,不是感知层设备。

答案:D

ok, 今天就到这里吧 🤗


相关系列文章,欢迎点赞、收藏,提供意见!​****

计算机系统基础知识 1分:概述、计算机硬件、计算机软件

操作系统 3分:进程管理、存储管理、文件管理、设备管理

数据库技术 3分:数据库设计、关系代数、范式、事务并发、数据库安全、新技术

嵌入式技术 3分:嵌入式硬件、嵌入式操作系统、嵌入式软件开发

计算机网络 3分(超纲较多):OSI七层模型、TCP/IP协议族、网络生命周期、IP地址

其他计算机系统基础知识 1分:计算机语言、多媒体、系统工程

系统性能 1分:性能指标、性能设计

信息系统基础知识 3分:信息系统生命周期、开发方法、五大典型系统

信息安全技术基础 5分:安全属性、信息安全技术、网络安全技术、安全协议

软件工程 12分:概述、需求工程、系统设计、运维、测试、基于构件;

面向对象技术 3分:面向对象基础、分析设计、UML关系、图

项目管理 1分:进度管理、配置管理、质量管理、风险管理

系统架构设计 20分:架构概念、生命周期、ABSD、DSSA、架构风格、

架构复用、质量属性、架构评估

软件可靠性 2分:可靠性建模、软件可靠性设计

软件架构的演化和维护1分:架构演化分类、评估、面向对象架构演化

未来信息综合技术 3分:信息物理系统、人工智能、边缘计算、机器人、数字李生、云计算

数学与经济管理 2分:最小生成树、最短路径、网络与最大流量、线性规划、决策论

知识产权和标准化 2分:知识产权属性、保护期限、产权人确定、侵权判定

专业英语 5分:完形填空,大学英语3级难度,自学

|--------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| 【架构专栏】架构考试介绍 | 【架构专栏】架构知识点 |
| 【架构专栏】第1章 绪论 | 【架构专栏】第11章 未来信息综合技术 |
| 【架构专栏】第2章 计算机基础知识 | 【架构专栏】第12章 信息系统架构设计理论与实践 |
| 【架构专栏】第3章 信息系统基础知识 | 【架构专栏】第13章 层次式架构设计理论与实践 |
| 【架构专栏】第4章 信息安全技术基础知识 | 【架构专栏】第14章 云原生架构设计理论与实践 |
| 【架构专栏】第5章 软件工程基础知识 | 【架构专栏】第15章 面向服务架构设计理论与实践 |
| 【架构专栏】第6章 数据库设计基础知识 | 【架构专栏】第16章 嵌入式系统架构设计理论与实践 |
| 【架构专栏】第7章 系统架构设计基础知识 | 【架构专栏】第17章 通信系统架构设计理论与实践 |
| 【架构专栏】第8章 系统质量属性与架构评估 | 【架构专栏】第18章 安全架构设计理论与实践 |
| 【架构专栏】第9章 软件可靠性基础知识 | 【架构专栏】第19章 大数据架构设计理论与实践 |
| 【架构专栏】第10章 软件架构的演化和维护 | |
[架构专栏 知识点]




希望有所帮助,互相学习、共同进步,欢迎点赞、收藏!

相关推荐
码流子2 小时前
智慧高速产品集落地全解析:一套方案打通车道接入、收费、管控与安全监测
大数据·人工智能·物联网·架构·系统架构
毅炼1 天前
不写多语言 SDK,怎么让 Python、Go、Node 服务接入注册中心?
java·后端·系统架构·gateway
PHP实战开发录1 天前
PHP Session为什么会拖慢并发请求
系统架构·php·开发
YOU OU1 天前
系统架构-CS与BS架构
系统架构
风123456789~1 天前
【架构专栏】第12章 信息系统架构设计 2/2
系统架构
m0_587383002 天前
深圳24小时自助健身房系统软件开发实战:架构设计与部署指南
人工智能·数据挖掘·系统架构·需求分析
PHP实战开发录2 天前
MySQL连接数为什么会打满
系统架构·php·开发
混凝土拌意大利面2 天前
软件架构之职责边界风格(RB)
系统架构
智慧物业老杨2 天前
人机协同的物业服务重构:技术落地路径与系统化思考
java·大数据·人工智能·重构·系统架构