目录
一、层次式体系结构概述
层次式体系结构设计是一种常见的架构设计方法,也称为 N 层架构设计,它将系统组成为一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层接口只对相邻的层可见。层次式体系结构的每一层最多只影响两层,同时只要给相邻层提供相同的接口,也允许每层用不同的方法实现,这种方式也为软件重用提供了强大的支持。大部分的应用会分成表现层(或称为展示层)、中间层(或称为业务层)、访问层(或称为持久层)和数据层,如下图所示。
分层架构的一个特性就是关注分离 (separation of concerns)。该层中的组件只负责本层的逻辑,组件的划分很容易明确组件的角色和职责,也比较容易开发、测试、管理和维护。
二、表现层框架设计
2.1 表现层中UIP设计思想
使用XML设计表现层。
UIP(UserInterface Process Application Block) 提供了一个扩展的框架,用于简化用户界面与商业逻辑代码的分离的方法,可以用它来写复杂的用户界面导航和工作流处理,并且它能够复用在不同的场景、并可以随着应用的增加而进行扩展。
使用 UIP 框架的应用程序把表现层分为了以下几层。
● User Interface Components: 这个组件就是原来的表现层,用户看到的和进行交互都是这个组件,它负责获取用户的数据并且返回结果。
● User Interface Process Components: 这个组件用于协调用户界面的各部分,使其配合后台的活动,例如导航和工作流控制,以及状态和视图的管理。用户看不到这一组件,但是这些组件为User Interface Components提供了重要的支持功能。
2.2 表现层动态生成设计思想
基于 XML 的界面管理技术可实现灵活的界面配置(静态)、界面动态生成和界面定制(动态)。
其思路是用XML 生成配置文件及界面所需的元数据,按不同需求生成界面元素及软件界面。基于 XML 界面管理技术,包括界面配置、界面动态生成和界面定制三部分,如下图所示。
三、中间层框架设计
3.1 业务逻辑组件
业务逻辑组件分为接口和实现类两个部分。
接口用于定义业务逻辑组件,定义业务逻辑组件必须实现的方法是整个系统运行的核心。增加业务逻辑组件的接口,是为了提供更好的解耦,控制器无须与具体的业务逻辑组件耦合,而是面向接口编程。
业务逻辑组件的实现类:以DAO 组件为基础,必须接收 Spring容器注入的 DAO 组件,因此必须为业务逻辑组件的实现类提供对应的 setter方法。
业务逻辑组件的配置:在配置文件中,采用继承业务逻辑组件的事务代理,将原有的业务逻辑组件作为嵌套bean配置,避免了直接调用没有事务特性的业务逻辑组件。系统实现了所有的后台业务逻辑,并且向外提供了统一的Facade接口,前台Web 层仅仅依赖这个 Facade接口。
3.2 工作流管理联盟
工作流管理联盟 (Workflow Management Coalition)将工作流定义为:业务流程的全部或部分自动化,在此过程中,文档、信息或任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标。工作流参考模型如下图。
(1)接口 1:过程定义导入/导出接口。这个接口的特点是:转换格式和 API调用,从而支持过程定义信息间的互相转换。
(2)接口 2:客户端应用程序接口。通过这个接口工作流机可以与任务表处理器交互,代表用户资源来组织任务。然后由任务表处理器负责,从任务表中选择、推进任务项。由任务表处理器或者终端用户来控制应用工具的活动。
(3)接口 3:应用程序调用接口。允许工作流机直接激活一个应用工具,来执行一个活动。典型的是调用以后台服务为主的应用程序,没有用户接口。当执行活动要用到的工具,需要与终端用户交互,通常是使用客户端应用程序接口来调用那个工具,这样可以为用户安排任务时间表提供更多的灵活性。
(4)接口 4:工作流机协作接口。其目标是定义相关标准,以使不同开发商的工作流系统产品相互间能够进行无缝的任务项传递。 WFMC 定义了4个协同工作模型,包含多种协同工作能力级别。
(5)接口 5:管理和监视接口。提供的功能包括用户管理、角色管理、审查管理、资源控制、过程管理和过程状态处理器等。
用工作流的思想组织业务逻辑,优点是:将应用逻辑与过程逻辑分离,在不修改具体功能的情况下,通过修改过程模型改变系统功能,完成对生产经营部分过程或全过程的集成管理,可有效地把人、信息和应用工具合理地组织在一起,发挥系统的最大效能。
3.3 业务逻辑层实体设计
业务逻辑层实体具有以下特点:
● 业务逻辑层实体提供对业务数据及相关功能(在某些设计中)的状态编程访问。
● 业务逻辑层实体可以使用具有复杂架构的数据来构建,这种数据通常来自数据库中的多个相关表。
● 业务逻辑层实体数据可以作为业务过程的部分I/O 参数传递。
● 业务逻辑层实体可以是可序列化的,以保持它们的当前状态。
● 业务逻辑层实体不直接访问数据库,全部数据库访问都是由相关联的数据访问逻辑组件提供的。
● 业务逻辑层实体不启动任何类型的事务处理,事务处理由使用业务逻辑层实体的应用程序或业务过程来启动。
在应用程序中表示业务逻辑层实体的方法有很多(从以数据为中心的模型到更加面向对象的表示法),如XML、通用DataSet、有类型的DataSet等。
以下示例显示了如何将一个简单的业务逻辑层实体表示为XML。 该业务逻辑层实体包含一
个产品。
<?xml version="1.0"?>
<Product xmlns="urn:aUniqueNamespace">
<ProductID>1</ProductID>
<ProductName>Chai</ProductName>
<QuantityPerUnit>10 boxes x 20 bags</QuantityPerUnit>
<UnitPrice>18.00</UnitPrice>
<UnitsInStock>39</UnitsInstock>
<Unitsonorder>0</UnitsOnOrder>
<ReorderLevel>10</ReorderLevel>
</Product>
将业务逻辑层实体表示为XML 的优点如下。
(1)标准支持。XML 是 World Wide Web Consortium(W3C) 的标准数据表示格式。
(2)灵活性。XML 能够表示信息的层次结构和集合。
(3)互操作性。在所有平台上,XML 都是与外部各方及贸易伙伴交换信息的理想选择。
如下图所示为用于Order业务逻辑层实体的通用 DataSet对象。此DataSet对象具有两个DataTable对象,分别保存订单信息和订单详细信息。每个DataTable具有一个对应的Unique Constraint对象,用于标识表中的主键。此外,该DataSet还有一个 Relation对象,用于将订单详细信息与订单相关联。
3.4 业务逻辑层框架
业务框架位于系统架构的中间层,是实现系统功能的核心组件。采用容器的形式,便于系统功能的开发、代码重用和管理。下图便是在吸收了SOA 思想之后的一个三层体系结构的简图。
业务层采用业务容器(Business Container)的方式存在于整个系统当中,采用此方式可以大大降低业务层和相邻各层的耦合,表示层代码只需要将业务参数传递给业务容器,而不需要业务层多余的干预。如此一来,可以有效地防止业务层代码渗透到表示层。
在业务容器中,业务逻辑是按照 Domain Model—Service—Control思想来实现的。
(1)Domain Model是领域层业务对象,它仅仅包含业务相关的属性。
(2)Service是业务过程实现的组成部分,是应用程序的不同功能单元,通过在这些服务之间定义良好的接口和契约联系起来。
(3)Control服务控制器,是服务之间的纽带,不同服务之间的切换就是通过它来实现的。
往期推荐
【系统架构设计师】十八、信息系统架构设计理论与实践②-CSDN博客文章浏览阅读393次,点赞12次,收藏8次。信息系统的架构 (Information System Architecture,ISA) 中的Architecture含义具有丰富内涵和作用,相比计算机领域的Architecture来说它的单一性、片面性模型是难以描述ISA 的全部的,ISA 模型应该是多维度,分层次、高度集成化的模型。要在企业中建立一个有效集成的ISA,必须考虑企业中的四个方面:战略系统、业务系统、应用系统和信息基础设施。https://shuaici.blog.csdn.net/article/details/140661026【系统架构设计师】十八、信息系统架构设计理论与实践①-CSDN博客文章浏览阅读642次,点赞36次,收藏16次。信息系统架构(ISA)是指对某一特定内容里的信息进行统筹、规划、设计、安排等一系列有机处理的活动。目前关于信息系统架构较为权威的定义有:(1)信息系统架构是系统的结构,由软件元素、元素外部可见属性和元素间关系组成。(2)信息系统架构是软件系统结构、行为和属性的高级抽象,由系统元素描述、元素间相互作用、元素集成模式及模式约束组成。(3)信息系统架构是系统的基础组织,体现为构件、构件间关系、构件和环境间关系、构件设计和演进的原则。https://shuaici.blog.csdn.net/article/details/140641460【系统架构设计师】九、软件工程(项目管理|进度管理|软件配置管理|软件质量管理|软件风险管理 )-CSDN博客文章浏览阅读1.5k次,点赞40次,收藏10次。面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等进行预先计划和执行。:识别出项目中已知和可预测的风险,确定风险的来源、产生的条件、描述风险的特征以及哪些项目可以产生风险,形成一个风险列表。https://shuaici.blog.csdn.net/article/details/140344001【系统架构设计师】一、计算机系统基础知识(硬件组成|CPU|校验码)-CSDN博客文章浏览阅读995次,点赞12次,收藏14次。一、计算机的硬件组成;二、中央处理单元:2.1 CPU的组成;2.2 CPU 的功能;三、校验码;四、考试真题练习。https://shuaici.blog.csdn.net/article/details/139684918