信息系统常见的系统架构

1.1单文件架构
现在很多企业内部虽然已经建设了一些信息系统,但还是有不少业务没有用专门的信息系统管理起来,普遍都是采用Excel表格来实现这些业务数据的填报和查询统计。Excel就是属单文件架构,这种架构是指整个系统就是一个文件,打开文件就可以直接操作,优点是简单易用,电脑上安装相应的软件就能使用,不需要专门的服务器,适合个人办公使用,如果有多个人需要查看或操作同一个表格文件时,就很不方便,需要把文件传来传去,每个人改完,还得跟其他人改的内容手动合并,不仅效率很低,而且很容易出错。
1.2两层架构
二十年前,随着PC电脑的普及,很多企事业单位内部开始建设信息系统,那时候的信息系统基本都是采用C/S模式的两层架构,C是指客户端软件(Client),S是指服务器端软件(Server),服务器一般都是指关系型数据库,就是客户端软件通过网络直接连接数据库进行数据的增删改查操作。这种架构相对上面的单文件架构来说,可以实现功能更加强大和更加完善的信息系统,支持多人同时操作同一个业务的数据,而且,支持数据格式和业务逻辑校验,防止无效数据录入;支持操作权限管控,防止非法操作。
但随着信息化建设的不断发展,使用信息系统的人越来越多,这种模式的弊端也逐步显现出来,就是在用户量比较大时,这种客户端软件直接连数据库的模式会造成整个系统卡顿,甚至宕机。因为这种模式,每个客户端都会与数据库至少建立一个连接,且一直保持,当用户比较多时,就会建立大量的数据库连接,造成数据库性能急剧下降,最终影响整个系统的访问,所以,这种模式现在已经很少见了。
1.3多层架构
现在的信息系统基本都是采取多层架构,最典型的就是三层架构,即:客户端软件+应用服务器+数据库,我们常说的B/S架构就属于这种,B是指Web浏览器(Browser),S是指应用服务器(包含Web服务器),实际后面还有关系型数据库,采用HTTP协议通信的手机APP、微信小程序等,也可以看做是B/S架构里的客户端,因为他们可以和Web页面共用服务器。
采用这种架构,客户端和数据库之间增加了一个应用服务器,客户端不能直接连接数据库,如果客户端需要对某项业务的数据进行增删改查操作,需要先连接到应用服务器,并发送具体的操作请求和参数,应用服务器进行相关校验后,再连接数据库执行实际的增删改查操作,并把结果返回给客户端,然后就关闭与数据库和客户端的连接,也就是说,应用服务器与数据库和客户端之间都不会一直连接,而是用完就关闭,这种方式可以大幅提升整个系统的性能。而且,这种架构把业务系统分成了前端界面和后台服务两个部分,前端界面负责填报和展示数据,后台服务负责执行必要的数据校验和业务逻辑处理,并连接数据库执行实际的数据增删改查操作,前端代码由Web浏览器或手机APP等客户端软件执行,后台服务由应用服务器执行。这种将前后端解耦分别开发和执行的模式,一是可以让软件系统的各个部分分工更加清晰明确,各自可以专注去解决各自层面的问题,二是可以实现资源复用,例如同一个后台服务,可以供Web页面、手机APP或微信小程序调用,而不需要针对每种终端都重复开发。
对于大多数中小型信息系统来说,这种三层架构基本就能满足要求了,如果还想提升性能,可以增加缓存服务器,将需要频繁访问的热数据保存到缓存中,需要查询时,可以直接从缓存获取,从而减轻关系型数据库的压力,提升系统的承载能力。
对于大型信息系统来说,由于要承受大量并发访问,则上面这种简单的三层架构也无法满足要求,于是又衍生出了集群架构和微服务架构等多层架构,在这些架构下,服务器端不只是简单的一个服务器为客户端提供服务,可能有好多台服务器组成集群,然后在前面加上负债均衡服务器进行统一的业务受理和任务调度,从而可以承载更多的并发访问。采用这种架构,每台应用服务器上的代码都是一样的,当客户端请求某个后台服务时,由负债均衡服务器按照随机、轮询等策略,将请求分派给其中一台处理,然后将处理结果返回给客户端。
如果采用微服务架构,还需要在应用服务器集群前面增加微服务网关,在网关中配置每个后台服务都由哪些服务器提供服务,从而可以实现针对不同的后台服务,可以分配不同的服务器或服务器集群进行处理,访问量小的,可以多个后台服务放在一台服务器上,访问量大的,可以单独放在一台服务器或者多台服务器上。在数据库层面,关系型数据库和缓存数据库也都可以由多台服务器组成集群。另外,根据需求,还可以部署单独的消息服务器、身份认证和鉴权服务器等。这些服务器端软件可以部署在物理主机或虚拟主机上,也可以部署在容器内,总之,部署方式可以非常灵活,可以按需扩容,是目前很多大型互联网平台普遍采用的架构。
1.4 TaskBuilder支持的系统架构
用TaskBuilder开发的应用具体采用的什么架构取决于使用的什么版本的任擎,共享版的任擎采取的是最简单的三层架构,即在服务器端,由一个单独的任擎进程统一为客户端提供所有服务,包括静态文件访问、动态服务执行、数据库操作、身份验证、数据缓存等等,可以满足中小型信息系统的需求。
如果系统用户较多,并发访问量较大,则可以使用任擎企业版或集群版。
任擎企业版支持在一台服务器上运行多个任擎进程,一个主进程,多个从进程,由主进程统一受理客户端请求,然后再分发给从进程进行处理,处理完再将结果返回给主进程,主进程再返回给客户端,从而实现负载均衡,满足大量用户的并发访问。并且,主进程负责实时监控各个从进程的运行状态,如果发现某个从进程出现异常,可以主动重启该从进程,保证整个系统能长期稳定运行。
任擎集群版支持基于微服务架构的分布式部署,可以将整个系统的各个后台服务分别部署在多个主机或容器中,可以根据各个后台服务的负载灵活分配服务器资源或弹性扩容,可以支持海量用户的并发访问,适合用来运行大型信息系统或互联网平台。
不管使用什么版本的任擎,核心功能都是一样的,只是架构不一样,将任擎从一个版本切换为另外一个版本时,用TaskBuilder开发的应用不需要进行任何修改,可以平滑切换。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【git】(一)在vscode上使用git进行版本控制(结合指令、含示例)

vscode中的git插件将git操作从git指令简化到简单的图形界面操作,不用再去记忆git指令,操作简单直观了很多。第一次使用时,为了加深理解,我将一些基本操作和该操作底层使用的命令结合起来,并包含实例,方便学…

安卓入门二 Kotlin基础

Kotlin Kotlin的历史 Kotlin由Jet Brains公司开发设计,2011年公布第一版,2012年开源。 2016年发布1.0正式版,并且Jet Brains在IDEA加入对Kotlin的支持,安卓自此又有新的选择。 2019年谷歌宣布Kotlin成为安卓第一开发语言&#x…

【MATLAB第111期】基于MATLAB的sobol全局敏感性分析方法二阶指数计算

【MATLAB第111期】基于MATLAB的sobol全局敏感性分析方法二阶指数计算 一、简介 在MATLAB中计算Sobol二阶效应指数通常涉及到全局敏感性分析(Global Sensitivity Analysis, GSA),其中Sobol方法是一种流行的技术,用于评估模型输入…

线段树例题题解

卫星覆盖(NOI1997) 题面: SERCOI(Space-Earth Resource Cover-Observe lnstitute) 是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 -SERCOI-308。这种卫星可以…

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧,P帧,B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…

vue 组件库二次封装

vue 组件库二次封装 需求背景:项目使用arco-design组件库,ui 界面对于单选有统一的界面, 对于封装组件有一个大原则就是我们应该尽量保持原有组件的接口,除了我们需要封装的功能外,我们不应该改变原有组件的接口&#…

Kafka 幂等性与事务

文章目录 幂等性实现机制配置使用局限性 事务使用场景配置使用实现机制事务过程事务初始化事务开始事务提交事务取消事务消费 幂等性 Producer 无论向 Broker 发送多少次重复的数据,Broker 端只会持久化一条,保证数据不丢失且不重复。 实现机制 通过引…

LVS 负载均衡原理 | 配置示例

注:本文为 “ LVS 负载均衡原理 | 配置” 相关文章合辑。 部分内容已过时,可以看看原理实现。 未整理去重。 使用 LVS 实现负载均衡原理及安装配置详解 posted on 2017-02-12 14:35 肖邦 linux 负载均衡集群是 load balance 集群的简写,翻…

CannotRetrieveUpdates alert in disconnected OCP 4 cluster解决

环境: Red Hat OpenShift Container Platform (RHOCP) 4 问题: Cluster Version Operator 不断发送警报,表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。 在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报: …

详解从输入url到页面渲染

当你在浏览器中输入一个 URL 并按下回车键,浏览器会经历一系列步骤来加载并渲染页面。这些步骤包括 DNS 解析、缓存处理、建立连接、发送请求、接收响应、解析 HTML、构建 DOM 树和 CSSOM 树、执行 JavaScript、布局和绘制等。以下是这些步骤的详细解释,…

Linux(Centos 7.6)目录结构详解

Linux(Centos 7.6)是一个操作系统,其核心设计理念是将一切资源抽象为文件,即一切皆文件。比如系统中的硬件设备硬盘、网络接口等都被视为文件。Windows系统一般是分为C、D、E盘。而Linux(Centos 7.6)是以斜线"/"作为文件系统的开始目录&#x…

【蓝桥杯选拔赛真题85】python摆放箱子 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析

目录 python摆放箱子 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python摆放箱子 第十五届蓝桥杯青少年组python比赛选拔赛真题详细解析 一…

数据分析思维(六):分析方法——相关分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…

小程序中引入echarts(保姆级教程)

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…

【SQLi_Labs】Basic Challenges

什么是人生?人生就是永不休止的奋斗! Less-1 尝试添加’注入,发现报错 这里我们就可以直接发现报错的地方,直接将后面注释,然后使用 1’ order by 3%23 //得到列数为3 //这里用-1是为了查询一个不存在的id,好让第一…

基于JAVA+SpringBoot+Vue的校园二手书交易平台

基于JAVASpringBootVue的校园二手书交易平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 …

快速掌握Elasticsearch检索之二:滚动查询(scrool)获取全量数据(golang)

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一:使用fromsize实现分页 1、滚动查询的使用场景 滚动查询区别于上一篇文章介绍的使用from、size分页检索,最大的特点是,它能够检索超过10000条外的…

【C++】深入理解 break 和 continue 语句

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯break 和 continue 介绍**break** 的作用**continue** 的作用注意事项 💯break 示例代码示例**执行结果****解析过程** 💯continue 示例代码示例&am…

高效使用AI完成编程项目任务的指南:从需求分析到功能实现

随着人工智能工具的普及,即便是零编程基础或基础薄弱的用户,也可以借助AI完成许多技术任务。然而,要高效地使用AI完成编程任务,关键在于如何清晰表达需求,并逐步引导AI实现目标。 在本文中,我们将通过开发…

算法每日双题精讲 —— 滑动窗口(水果成篮,找到字符串中所有字母异位词)

🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧!💪…