软考笔记--信息系统架构

一.架构风格

信息系统架构设计的一个核心问题是能否使用重复的信息系统架构模式,即能否达到架构级别的软件重用。信息系统架构风格是描述某个特定应用领域中系统组织方式的惯用模式,架构风格定义了一个系统家族,即一个架构定义一个词汇表和一组约束。词汇表中包含一些构件和连接类型,而这组约束指出系统是如何将这些构件和连接组合起来的。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。

信息系统架构风格通常也遵循通用的架构风格。这些通用的架构风格包括:

(1)数据流风格:批处理序列;管道/过滤器。

(2)调用/返回风格:主程序/子程序;面向对象风格;层次结构。

(3)独立构件风格:进程通信;事件系统。

(4)虚拟机风格:解释器;基于规则的系统。

(5)仓库风格:数据库系统;超文本系统;黑板系统。

二. 信息系统架构分类

信息系统架构可分为物理结构与逻辑结构两种,物理结构是指不考虑系统各部分的实际工作与功能结构,只抽象地考察期硬件系统的空间分布情况,逻辑结构是指信息系统各种功能子系统的综合体。

1.信息系统物理结构

物理结构一般分为集中式与分布式两大类。

(1)集中式结构

集中式结构是指物理资源在空间上集中配置。早期的单机系统是最典型的集中式结构,它将软件、数据与主要外部设备集中在一套计算机系统之中。由分布在不同地点的多个用户通过终端共享资源组成的多用户系统,也属于集中式。

(2)分布式结构

随着数据库技术与网络技术的发展,分布式结构的信息系统开始产生,分布式系统是值通过计算机网络把不同地点的计算机硬件、软件、数据等资源联系在一起,实现不同地址的资源共享。各地的计算机系统既可以在网络系统统一管理下工作,也可以脱离网络环境利用本地资源独立工作。

分布式结构的主要特征是:可以根据应用需求来配置资源,提高信息系统对用户需求与外部环境变化的应变能力,系统扩展方便,安全性好,某个结点所出现的故障不会导致整个系统停止运转。但是由于资源分散,且又分属于各个子系统,系统管理的标准不统一,协调困难,不利于对整个资源的规划与管理。

分布式结构又可分为一般分布式与客户机/服务器模式,客户机/服务器结构中,网络上的计算机分为客户机与服务器两大类。服务器包括文件服务器、数据库服务器、打印服务器等;网络结点上的其他计算机系统则称为客户机。用户通过客户机向服务器提出服务请求,服务器根据请求向用户提供经过加工的信息。

2.信息系统的逻辑结构

信息系统的逻辑结构是指其功能综合体和概念性框架。由于信息系统种类繁多,规模不一,功能上存在较大差异,其逻辑结构也不相同。

信息系统结构的综合: 在信息系统开发中,强调各子系统之间的协议一致性和整体性,必须在构造信息系统是注意对各子系统进行统一规划,并对各子系统进行综合。

(1)横向综合

将同一层次的各种职能综合在一起,例如将允许控制层的人事和工作子系统综合在一起,使基层业务处理一体化。

(2)纵向综合

把某种职能的各个管理层次的业务组织在一起,这种综合沟通了上下级之间的关系,如工厂的会计系统和公司的会计系统综合在一起,它们都有共同之处,形成一体化的处理过程。

(3)纵横综合

主要是从信息模型和处理模型两个方面进行综合,做到信息集中共享,程序尽量模块化,注意提取通用部分,建立系统公用数据库和统一的信息处理系统。

信息系统架构的一般原理

信息系统架构指的是在全面考虑企业的战略、业务、组织、管理和技术的基础上,着重研究企业信息系统的组成成分及成分之间的关系,建立起多维分层次的、集成的开放式体系结构,并为企业提供具有一定柔性的信息系统及灵活有效地实现方法。

这里任务架构包含两个基本部分:组成成分和组成成分之间的关系。在外界环境方式变化时架构中组成成分和关系有些可能是不变的,有些则可能要产生很大的变化。在信息系统中,分析出相对稳定的组成成分与关系,并在相对稳定部分的支持下,对相对变化较多的部分进行重新组织,以满足变化的需求,就能够使得信息系统对环境的变化具有一定的适应能力,即具有一定的柔性,这就是信息系统架构的基本原理。

三.信息系统常用的几种架构模型

信息系统常用的四种模式主要包括:单机应用系统/两层/多层C/S,MVC结构,面向服务的SOA多服务集合和数据交互总线等。

1.单机应用模式

单机应用系统是最简单的软件结构,是指运行在一台物理机器上的独立应用程序。

2.客户机/服务器(C/S)模式

C/S模式是信息系统中最常见的一种。C/S概念可以理解为基于TCP/IP协议的进程间通信IPC编程的发送与发射程序结构,目前C/S结构流行下面四种常见的客户端/服务器的架构。

(1)两层C/S

两层C/S, 其实质就是 IPC 客户端/服务器结构的应用系统体现。两层C/S结构通俗地说就是人们常说的“胖客户端”模式。

(2)三层C/S与B/S结构

三层C/S结构其前台界面送往后台的请求中,除了数据库存取操作以外,还有很多其他业务逻辑需要处理。三层 C/S 的前台界面与后台服务之间必须通过一种协议(自开发或采用标准协议)来通信。目前最典型的基于三层C/S 结构的应用模式便是我们最熟悉、较流行的B/S(Brower/Server浏览器/服务器)模式。

(3)MVC

MVC(Model-View-Controller) 的概念在目前信息系统设计中非常流行,严格来讲, MVC 实际上是上述多层 C/S 结构的一种常用的标准化模式,或者可以说是从另一个角度去抽象这种多层C/S结构。 在J2EE架构中, View 表示层指浏览器层,用于图形化展示请求结果; Controller控制器指Web服务器层, Model 模型层指应用逻辑实现及数据持久化的部分。MVC主要是要求表示层(视图)与数据层(模型)的代码分开,而控制器则可以用于连接不同的模型和视图来完成用户的需求。

3.面向服务(SOA)模式

(1)面向服务架构

如果两个多层C/S结构的应用系统之间需要相互进行通信,那么就产生了面向服务架构,简SOA。在SOA 的概念中,将由多层服务组成的一个结点应用看作是一个单一的服务。在 SOA 的 定义里,对“服务”的概念进行的广义化,即它不是指计算机层面的一个Daemon, 而是指向提供一组整体功能的独立应用系统。

(2)Web Service

面向服务架构体现在Web服务之间,就成了Web Service,即两个互联网应用之间可以相互为对方开放一些内部服务,目前web应用对外开放漆内部服务的协议有SOAP和WSDL。

(3)面向服务架构的本质

面向服务架构的本质是消息机制或远程过程调用 (RPC)。 虽然其具体的实现底层并不一定是采用 RPC编程技术,但两个应用之间的相互配合确实是通过某种预定义的协议来调用对方的 “过程”实现的,这与前节所讲多层架构的单点应用系统中,两个处于不同层的运行实例相互之间通信的协议类型基本是相同的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/735835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch单机多卡训练 logger日志记录和wandb可视化

PyTorch 单机多卡训练示例 1、工具:2、代码3、启动 1、工具: wandb:云端保存训练记录,可实时刷新logging:记录训练日志argparse:设置全局参数 2、代码 import os import time import torch import wandb…

elementPlus的坑

记录由 element ui 到element plus的过程 el-form v-model与:model v-model就不用说了,这个:model类似于内置的API接口,用的时候这两个值一样就行 不一样的话会出现,如下奇怪的情况 能输入,但是只能文本框中只显示1个字符&#x…

jmeter快速使用

文章目录 前言一、安装jmeter二、插件安装三、添加常用监听器参考 前言 Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications. It can be used to simulate a heavy load on a server, group of servers, network…

Redis核心数据结构之整数集合

整数集合 概述 整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个结合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。 例子 举个例子,如果创建一个只包含五个元素的集合键&#x…

MySQL 8.0 架构 之 慢查询日志(Slow query log)(2)流程图:查询记录到慢查询日志中的条件

文章目录 MySQL 8.0 架构 之 慢查询日志(Slow query log)(2)流程图:查询记录到慢查询日志中的条件确定查询是否会记录在慢查询日志中的流程图参考 【声明】文章仅供学习交流,观点代表个人,与任何…

JavaScript数组方法常用方法大全

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. push()2. pop()3. unshift()4. shift()5. isArray()6. map()7. filter()8. every()9. some()10. splice()11. slice()12. indexOf()13. includes()14. concat()1…

RK3588 Android 12 系统内核开发+Native层脚本自启动+SELinux配置

前言 开发板型号:RK_EVB7_RK3588_LP4…_V11目标:在开发板上随开机自启动脚本,带起二进制程序,并完备一些其他系统功能。简介:本文自启动脚本run.sh唯一的作用就是拉起二进制程序demo;demo是简单的hello_wo…

Linux下阻塞IO驱动实验三的测试

一. 简介 前面一篇文章实现了驱动代码,以实现应用程序阻塞式访问设备,核心使用的Linux内核提供的阻塞IO机制:等待队列。文章地址如下: Linux下阻塞IO驱动实验实例三-CSDN博客 本文对驱动模块进行测试,测试按键功能是否正常,查看应用程序运行时CPU占用率是否接近0%,当…

【大厂AI课学习笔记NO.76】人工智能人才金字塔

人工智能领域,分为源头创新人才、产业研发人才、应用开发人才和实用技能人才。 人工智能领域的人才结构呈现多样化特点,主要可以分为源头创新人才、产业研发人才、应用开发人才和实用技能人才四大类。这四大类人才在人工智能领域的发展中各自扮演着不可或…

Android下使用OpenOCD

目录 1. 准备工作 2. 运行bootstrap 3. 运行Configure 4. 编译make 4.1 错误1 4.2 错误2 4.3 错误3 4.4 错误4 4.5 错误5 4.6 错误6 4.7 错误7 5. 安装 主要是使用NDK编译OpenOCD源码。最好先在Ubuntu中编译通过OpenOCD。 1. 准备工作 Ubuntu下下载NDK和OpenOCD&…

linux安全配置规范

一、 概述 1.1 适用范围 本配置规范适用于凝思操作系统,主要涉及LINUX操作系统安全配置方面的基本要求,用于指导LINUX操作系统安全加固工作,落实信息安全等级保护等保三级系统操作系统安全配置,为主机安全配置核查提供依据。…

Python刘诗诗

写在前面 刘诗诗在电视剧《一念关山》中饰演了女主角任如意,这是一个极具魅力的女性角色,她既是一位有着高超武艺和智慧的女侠士,也曾经是安国朱衣卫前左使,身怀绝技且性格坚韧不屈。剧中,任如意因不满于朱衣卫的暴行…

P1948 [USACO08JAN] Telephone Lines S

Here 典中之典!! 解题思路 可选k条边代价为0如何决策? 将到当前位置选择了几条代价为0的边放入状态,即若当前状态选的边数小于,则可以进行决策,是否选择当前边,若选,则&#xff0c…

基于智慧灯杆的智慧城市解决方案(2)

功能规划 智慧照明功能 智慧路灯的基本功能仍然是道路照明, 因此对照明功能的智慧化提升是最基本的一项要求。 对道路照明管理进行智慧化提升, 实施智慧照明, 必然将成为智慧城市中道路照明发展的主要方向之一。 智慧照明是集计算机网络技术、 通信技术、 控制技术、 数据…

uniapp:小程序数字键盘功能样式实现

代码如下&#xff1a; <template><view><view><view class"money-input"><view class"input-container" click"toggleBox"><view class"input-wrapper"><view class"input-iconone"…

C++ 队列

目录 队列的应用场景 1、429. N 叉树的层序遍历 2、 103. 二叉树的锯齿形层序遍历 3、662. 二叉树最大宽度 4、515. 在每个树行中找最大值 队列的应用场景 广度优先搜索&#xff08;BFS&#xff09;&#xff1a;队列是广度优先搜索算法的核心数据结构。在BFS中&#xff…

C语言:深入补码计算原理

C语言&#xff1a;深入补码计算原理 有符号整数存储原码、反码、补码转换规则数据与内存的关系 补码原理 有符号整数存储 原码、反码、补码 有符号整数的2进制表示方法有三种&#xff0c;即原码、反码和补码 三种表示方法均有符号位和数值位两部分&#xff0c;符号位用0表示“…

Linux:kubernetes(k8s)lable和selecto标签和选择器的使用(11)

通过标签是可以让我们的容器和容器之间相互认识&#xff0c;简单来说一边打了标签&#xff0c;一边使用选择器去选择就可以快速的让他们之间耦合 定义标签有两种办法&#xff0c;一个是文件中&#xff0c;一个是命令行里 我们在前几章编进文件的时候里面都有lable比如 这个就是…

rk3399使用阿里推理引擎MNN使用cpu和gpu进行benchmark,OpenCL效果不佳?

视频讲解 rk3399使用阿里推理引擎MNN使用cpu和gpu进行benchmark&#xff0c;OpenCL效果不佳&#xff1f; 背景 MNN是阿里开源的推理引擎&#xff0c;今天测试一下在rk3399平台上的benchmark怎么样&#xff1f; alibaba/MNN: MNN is a blazing fast, lightweight deep learning…

keycloak18.0.0==前后端分离项目中使用,前端react后端springboot

配置keycloak 启动keycloak18 新建一个realm,名字叫test1 新建两个client&#xff0c;一个用于前端&#xff0c;一个用于后端 第一个 react http://localhost:8081/auth/realms/test1/react/ 第二个 backend-service 在两个client下分别创建role testRole backend-servic…