信息系统常见的系统架构
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开发的应用不需要进行任何修改,可以平滑切换。
相关文章:
信息系统常见的系统架构
1.1单文件架构 现在很多企业内部虽然已经建设了一些信息系统,但还是有不少业务没有用专门的信息系统管理起来,普遍都是采用Excel表格来实现这些业务数据的填报和查询统计。Excel就是属单文件架构,这种架构是指整个系统就是一个文件࿰…...
AngularJS 过滤器:提升用户体验的数据处理利器
AngularJS 过滤器:提升用户体验的数据处理利器 AngularJS,作为一款由Google维护的开源JavaScript框架,以其独特的双向数据绑定和MVVM(Model-View-ViewModel)架构在Web应用开发领域占据着重要地位。其中,AngularJS的过滤器(Filters)功能,为开发者提供了一种轻量级、高…...
Upload-labs 第四关(学习记录)
上传.htaccess文件 SetHandler application/x-httpd-php <IfModule mime_module> SetHandler application/x-httpd-php #在当前目录下,所有文件都会被解析成php代码执行 </IfModule> 上传一句话木马 保存为 1.png 文件 成功解析...
金融租赁系统的创新与发展推动行业效率提升
金融租赁系统的技术升级与创新 在当今快速发展的金融市场中,金融租赁系统的技术升级与创新充满了无限可能。想象一下,传统的租赁方式就像一位沉闷的老师,而新兴技术就如同一位活泼的学生,不断追求新鲜事物。通过自动化、人工智能…...
MYSQL在Windows平台上的限制
以下限制适用于在Windows平台上使用MySQL: 程序内存 在windows32位上,一个进程(包括MySQL)内默认使用超过2GB的内存是不可能的。这是因为windows 32位的物理地址限制是4GB,视窗内的默认设置是在内核(2GB&a…...
Rust 泛型、特征与生命周期详解
Rust 泛型、特征与生命周期详解 泛型编程 泛型函数 // 泛型函数:找出最大值 fn largest<T: PartialOrd>(list: &[T]) -> &T {let mut largest &list[0];for item in list {if item > largest {largest item;}}largest }fn main() {let…...
基于 Python 虎扑网站的 NBA 球员大数据分析与可视化
标题:基于 Python 虎扑网站的 NBA 球员大数据分析与可视化 内容:1.摘要 摘要:本文介绍了一种基于 Python 的虎扑网站 NBA 球员大数据分析与可视化方法。通过网络爬虫技术获取球员数据,利用数据分析和可视化工具对数据进行处理和展示,帮助用户…...
小程序组件 —— 26 组件案例 - 跳转到商品列表
在上一节实现了商品导航区域,这一节实现跳转到商品列表的功能;当用户在点击商品导航时,需要能够跳转到商品列表页面;在微信小程序中,如果需要进行跳转,需要使用 navigator 组件,navigator 组件有…...
【Spring学习】为什么Spring中的IOC(控制反转)能够降低耦合性(解耦)?
为什么Spring中的IOC能够降低耦合性? 前言1.传统方式2.使用接口3.工厂方法4.反射改造工厂类5.IOC总结参考 前言 本文目标:本文旨在讲解为什么IOC能够降低耦合性。 情景:假设你是一个爱摸鱼的程序员,现在需要测试一个游戏&#x…...
机场安全项目|基于改进 YOLOv8 的机场飞鸟实时目标检测方法
目录 论文信息 背景 摘要 YOLOv8模型结构 模型改进 FFC3 模块 CSPPF 模块 数据集增强策略 实验结果 消融实验 对比实验 结论 论文信息 《科学技术与工程》2024年第24卷第32期刊载了中国民用航空飞行学院空中交通管理学院孔建国, 张向伟, 赵志伟, 梁海军的论文——…...
卸载干净 IDEA(图文讲解)
目录 1、卸载 IDEA 程序 2、注册表清理 3、残留清理 1、卸载 IDEA 程序 点击屏幕左下角 Windows 图标 -> 设置-控制面板->intellij idea 勾选第一栏 Delete IntelliJ IDEA 2022.2 caches and local history,表示同时删除 IDEA 本地缓存以及历史。 Delete I…...
云端微光,AI启航:低代码开发的智造未来
文章目录 前言一、引言:技术浪潮中的个人视角初次体验腾讯云开发 Copilot1.1 低代码的时代机遇1.1.1 为什么低代码如此重要? 1.2 AI 的引入:革新的力量1.1.2 Copilot 的亮点 1.3 初学者的视角1.3.1 Copilot 带来的改变 二、体验记录ÿ…...
工程师了解的Lua语言
1、关于lua语言 lua语言是用于嵌入式领域当中的一门脚本语言,其实在大学期间,我也没有接触过这门语言,但是在未来的发展之路当中,需要用到这门语言,所以在我的知识库当中添加这门语言知识是必要而且重要的,…...
著名的软件都用什么语言编写?
你是否曾经好奇,身边那些耳熟能详的软件,它们究竟是用什么语言编写的?从操作系统到浏览器、从数据库到编程工具,每一款软件背后都承载着开发者们的智慧与技术选型。那么,究竟哪些编程语言成就了这些世界级的软件呢&…...
设计模式 结构型 代理模式(Proxy Pattern)与 常见技术框架应用 解析
代理模式(Proxy Pattern)是一种常见的设计模式,在软件开发中有着广泛的应用。其核心思想是通过创建一个代理类来控制对另一个对象的访问,从而实现对目标对象功能的扩展、保护或其他附加操作。 一、核心思想 代理模式的核心思想在…...
Linux环境(CentOs7) 安装 Node环境
Linux环境(CentOs7) 安装 Node环境 使用NodeSource安装Node.js 1、清除缓存(可选但推荐) sudo yum clean all2、添加NodeSource仓库,根据你想要安装的Node.js版本,选择相应的NodeSource安装脚本。例如&am…...
Tailwind CSS 实战:现代登录注册页面开发
在前端开发中,登录注册页面是最常见的需求之一。一个设计精美、交互友好的登录注册页面不仅能提升用户体验,还能增加产品的专业度。本文将详细介绍如何使用 Tailwind CSS 开发一个现代化的登录注册页面。 设计思路 在开始编码之前,我们先明…...
Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结
注:因为本人也是第一次接入广告与支付SDK相关的操作,网上也查了很多教程,很多也都是只言片语或者缺少一些关键步骤的说明,导致本人也是花了很多时间与精力踩了很多的坑才搞定,发出来也是希望能帮助到其他人在遇到相似问…...
反向传播算法的偏置更新步骤
偏置的更新步骤 假设我们有一个三层神经网络(输入层、隐藏层和输出层),并且每层的激活函数为 sigmoid 函数。我们需要更新隐藏层和输出层的偏置。以下是详细的步骤: 1. 计算误差项(Error Term) 输出层的…...
条款47:请使用 traits classes 表现类型信息(Use traits classes for information about types)
条款47:请使用 traits classes 表现类型信息 1.1 提出问题 想一想,下面的功能如何实现?(可以查看std::advance源码) template<typename IterT, typename DistT> void advance(IterT& iter, DistT d); /…...
3个关键步骤:在电视盒子上完美运行Armbian系统的终极指南
3个关键步骤:在电视盒子上完美运行Armbian系统的终极指南 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk358…...
打破游戏边界:Sunshine构建你的无缝云游戏体验
打破游戏边界:Sunshine构建你的无缝云游戏体验 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想象一下这样的场景:你在客厅的智能电视上玩着3A大作&#x…...
Pyrene-PEG-Sil,芘丁酸酯聚乙二醇三乙氧基硅烷,荧光特性对微环境变化高度敏感
一.名称英文名称:Pyrene-PEG-Silane,Pyrene-PEG-Sil,Py-PEG-Silane,Py-PEG-Sil中文名称:芘丁酸酯聚乙二醇三乙氧基硅烷,芘丁酸酯-PEG-三乙氧基硅烷分子量:1k,2k,3.4k&…...
Aurix/Tricore实验解析:从链接脚本到汇编指令的Trap向量表构建
1. 理解Trap机制与向量表基础 在Aurix/Tricore架构中,Trap(陷阱)是处理器响应异常事件的硬件机制,相当于汽车的安全气囊——平时看不见,但遇到碰撞时会立即触发保护。与中断不同,Trap是同步触发的ÿ…...
ComfyUI翻译节点终极指南:如何选择最适合你的AI创作翻译工具
ComfyUI翻译节点终极指南:如何选择最适合你的AI创作翻译工具 【免费下载链接】ComfyUI_Custom_Nodes_AlekPet Custom nodes that extend the capabilities of Comfyui 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_Custom_Nodes_AlekPet 在AI图像生…...
从夯到拉,大模型岗位全攻略:程序员转型指南与避坑指南
文章详细解析了大模型领域五个梯队岗位的工作内容、技能要求及发展前景,从底层预训练工程师到应用开发工程师,为不同背景的程序员提供转型建议。同时指出行业人才缺口巨大,传统程序员可凭借编程基础实现职业升级,并推荐系统学习路…...
ECharts 5.4.3实战:3步打造科技感爆棚的流光折线图(附完整代码)
ECharts 5.4.3实战:3步打造科技感爆棚的流光折线图(附完整代码) 在数据可视化领域,ECharts凭借其强大的功能和灵活的配置选项,已经成为前端开发者的首选工具之一。特别是其丰富的动画效果,能够为静态数据注…...
OpenCode应用案例:搭建企业内部代码审查助手,提升开发效率
OpenCode应用案例:搭建企业内部代码审查助手,提升开发效率 1. 项目背景与痛点分析 在软件开发团队中,代码审查是保证代码质量的关键环节。然而传统人工审查方式面临诸多挑战: 时间成本高:资深工程师需要花费大量时间…...
如何用Steam Achievement Manager掌控游戏成就?解锁7大实用技巧
如何用Steam Achievement Manager掌控游戏成就?解锁7大实用技巧 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 在游戏世界中,成就…...
【花雕学编程】Arduino BLDC 之使用互补滤波进行姿态控制的机器人
从专业工程视角来看,基于Arduino、使用互补滤波进行姿态控制的BLDC(无刷直流电机)机器人,是一个典型的嵌入式实时闭环控制系统。它集成了传感器数据融合、控制算法和电机驱动,广泛应用于对姿态稳定性有要求的场景。 1、…...
