信息系统架构模型_1.单机应用模式和客户机/服务器模式

1.单机应用模式(Standalone)

        单机应用系统是最简单的软件结构,是指运行在一台物理机器上的独立应用程序。这些软件系统,从今天的软件架构上来讲,是很简单,是标准的单机系统。当然至今,这种复杂的单机系统也有很多,它们大多都是专业领域的产品,如CAD/CAM领域的CATIA、Pro/Engineer,Autodesk的AutoCAD,还有熟悉的Photoshop、Coreldraw,等等。

2.客户机/服务器(Client/Server)模式

        客户机/服务器模式是信息系统中最常见的一种。C/S概念可理解为基于TCP/IP协议的进程间通信IPC编程的“发送”与“反射”程序结构,即Client方向Server方发送一个TCP或UDP数据包,然后Server方根据接收到的请求向Client方回送TCP或UDP数据包,目前C/S架构非常流行下面四种常见的客户机/服务器的架构。

2.1两层C/S

         两层C/S,其实质就是IPC客户端/服务端结构的应用系统体现。两层C/S结构通俗地说就是人们常说的“胖客户端”模式。在实际的系统设计中,该类结构主要是指前台客户端+后台数据库管理系统,如图1所示。

图1 典型的两层客户机/服务器架构 

        在两层C/S结构中,图1前台界面+后台数据库服务的模式最为典型,传统的很多数据库前端开发工具(如Power Builder、Delphi、VB)等都是用来专门制作这种结构的软件工具。两层C/S结构实际上就是将前台界面与相关的业务逻辑处理服务的内容集成在一个可运行单元中了。 

2.2三层C/S与B/S结构

         三层C/S结构如图2(a)所示,其前台界面送往后台的请求中,处理数据库存取操作意外,还有很多其他业务逻辑需要处理。三层C/S的前台界面与后台服务之间必须通过一种协议(自开放或采用标准协议)来通信(包括请求、回复、远程函数调用等),通常包括以下7种:

        (1)基于TCP/IP协议,直接在底层Socket API基础上自行开发。这样做一般只适合需求与功能简单的小型系统。

        (2)首先建立自定义的消息机制(封装TCP/IP与Socket编程),然后前台与后台之间的通信通过该消息机制来实现。消息机制可以基于XML,也可以基于字节流(Stream)定义。虽然是属于自定义通信,但是,它可以基于此构件大型分布式系统。

        (3)基于PRC编程。

        (4)基于CORBA/IIOP协议。

        (5)基于JAVA RMI。

        (6)基于J2EE JMS。

        (7)基于HTTP协议。比如浏览器与Web服务器之间的信息交换。这里需要指出的是HTTP不是面向对象的结构,面向对象的应用数据会被首先平面化后进行传输。

        目前最典型的基于三层C/S结构的应用模式便是我们最熟悉、较流行的B/S(Browser/Server,浏览器/服务器)模式,如图2(b)所示。

        图2 三层C/S与B/S架构 

        图2(b)的B/S结构中,Web浏览器是一个用于文档检索和显示的客户应用程序,并通过超文本传输协议HTTP(Hyper Text Transfer Protocol)与Web服务器相连。该模式下,通用的、低成本的浏览器节省了两层结构C/S模式客户端软件的开发和维护费用。这些浏览器大家都很熟悉,包括MS Ineternet Explorer、Mozilla FireFox、NetScape等。

        Web服务器是指驻留与因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件或数据时,服务器将处理该请求并将文件或数据发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP进行信息交流,可称为HTTP服务器。

        应该强调的是B/S模式的浏览器与Web服务器之间的通信仍然是TCP/IP,只是将协议格式在应用层进行了标准化。实际上B/S是采用了通用客户端界面的三层C/S结构。 

2.3多层C/S结构

        多层C/S结构一般是指三层以上的结构,在实践中主要是三层与四层,四层即前台界面(如浏览器)、Web服务器、中间件(或应用服务器)及数据库服务器,典型的客户机/服务器软件结构如图3所示。

        图3 典型多层客户机/服务器架构 

         多层客户机/服务器模式主要用于较有规模的企业信息系统建设,其中中间件一层主要完成以下几个方面的工作:

        (1)提高系统可伸缩性,增加并发性能。在大量并发访问发生的情况下,Web服务器可处理的并发请求数可以在中间件一层得到更进一步的扩展,从而提高系统整体并发连接数。

        (2)中间件/应用层这一层专门完成请求转发或一些与应用逻辑相关的处理,具有这种作用的中间件一般可以作为请求代理,也可作为应用服务器。中间件的这种作用在J2EE的多层结构中比较常用,如BEA WebLogic、IBM WebSphere等提供的EJB容器,就是专门用以处理复杂企业逻辑的中间件技术组成部分。

        (3)增加数据安全性。在网络结构设计中,Web服务器一般都采用开放式结构,即直接可以被前端用户访问,如果是一些在公网上提供服务的应用,则Web服务器一般都可以被所有能访问与联网的用户直接访问。因此,如果在软件结构设计上从Web服务器一般就可以直接访问企业数据库是不安全的,因此,中间件的存在,可以隔离Web服务器就可以直接访问请求:Web服务器将请求先发给中间件,然后由中间件完成数据库访问处理后返回。

2.4MVC

        MVC(Model-View-Controller)的概念在目前信息系统设计中非常流行,严格来讲,MVC实际上是上述多层C/S结构的一种常用的标准化模式,或者可以说是从另一个角度去抽象这种多层C/S结构。

        在J2EE架构中,View表示层指浏览器层,用于图形化展示请求结果;Controller控制器指Web服务器层,Model模型层指应用逻辑实现及数据持久化的部分。目前流行的J2EE开发框架,如JSF、Struts、Spring、Hibernate等及它们之间的组合,如Struts+Spring+Hibernate(SSH)、JSP+Spring+Hibernate等都是面向MVC架构的。另外,PHP、Perl、MFC等语言都有MVC的实现模式。

        MVC主要是要求表示层(视图)与数据层(模型)的代码分开,而控制器则可以用于连接不同的模型和视图来完成用户的需求。从分层体系的角度来讲,MVC的层此结构如图4所示,控制器与视图通常处于Web服务器一层,而根据“模型”有没有将业务逻辑处理分离策划功能单独服务处理,MVC可以分为三层或四层体系。         

图4 MVC架构的分层体系

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

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

相关文章

电路板维修【二】

【维修一个65W的氮化镓快充头,摔地上就没输出了,看下怎么回事】:https://www.bilibili.com/video/BV1vG411Q7MDvd_source3cc3c07b09206097d0d8b0aefdf07958 对于某些电器,维修之前需要先测量主滤波电容上面有没有存电&#xff0c…

【AMBA Bus ACE 总线 8 -- ICache maintenance】

请阅读【AMBA Bus ACE 总线与Cache 专栏 】 欢迎学习:【嵌入式开发学习必备专栏】 文章目录 ACE ICache maintenanceACE ICache maintenance 图 1-1 当一个OS run 多个cpu的时候,根据调度算法的不同,OS 可以根据调度算法的不同分别 run 在某个具体的CPU上,因此,它们会有…

分布式模式让业务更高效、更安全、更稳定

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章🔥:探索设计模式的魅力:分布式模…

centos7下安装配置nginx

1、下载nginx安装包 wget http://nginx.org/download/nginx-1.8.0.tar.gz 2、安装nginx所需依赖 yum -y install pcre pcre-devel yum -y install zlib zlib-devel yum -y install openssl openssl-devel 3、进入到nginx安装包目录下,解压tar.gz包 cd /home/soft t…

pikachu靶场-全套学习

文章目录 配置pikachu靶场浏览器访问过程burpsuite配置代理hackbar安装使用kali安装中国蚁剑暴力破解cookie简化场景解释各部分含义如何工作 基于表单的暴力破解验证码绕过(On server)验证码绕过(on client)token防爆破? XSS(Cross-Site Scripting跨站脚本攻击 &am…

使用AudioCraft(MusicGen)生成音乐

AudioCraft 是一个 PyTorch 库,用于音频生成的深度学习研究。AudioCraft 包含 AudioGen 和 MusicGen 两个最先进的人工智能生成模型的推理和训练代码,用于生成高质量的音频。 MusicGen 是一种简单可控的音乐生成模型,它使用Meta 20K 小时的授权音乐来进行训练,能够生成与文…

【栈】Leetcode 比较含退格的字符串

题目讲解 844. 比较含退格的字符串 算法讲解 使用栈模拟,但遇到#字符就让栈顶元素出栈,但是在写的过程中有两点需要注意:当#出现在第一个位置,需要特殊处理一下;当栈为空的时候,还出现#字符需要特殊处理…

【Web】2023浙江大学生省赛初赛 secObj 题解

目录 step 0 step 1 step 2 step 3 题目本身是不难,简单复健一下 step 0 pom依赖就是spring 反序列化入口在./admin/user/readObj 输入流做了黑名单的过滤,TemplatesImpl不能直接打 可以jackson打SignedObject二次反序列化绕过 具体原理看下面这…

全新时代的降临——比亚迪,助力未来出行

近日,世界舞台中央聚焦,比亚迪登上欧洲顶级赛事赞助席位,让全球见证中国新能源汽车传奇崛起!作为新能源领袖品牌,比亚迪现已累计销售突破730万辆,全球每售出五辆新能源汽车,便有一辆来自比亚迪。…

支付漏洞防护绕过的一种方式

首先注册一个账户并进行登陆,点击一个商品点击进去 这里为了方便查看数据包,我这边商品的数量选择3,点击立即购买并抓包 观察数据包,发现有个num传参,正是我选择的数量3,尝试修改为负数-3,这里需要修改两个包 点击提交后发现报错了,显示已经付了或者金额不能为0 也就是说数量…

【SRC实战】利用APP前端加密构造数据包

挖个洞先 https://mp.weixin.qq.com/s/ZnaRn222xJU0MQxWoRaiJg “ 以下漏洞均为实验靶场,如有雷同,纯属巧合” 01 — 漏洞证明 “ 参数加密的情况,不会逆向怎么办?” 1、新用户首次设置密码时抓包,此处设置为0000…

快充插线板怎么选?我的办公搭子是它!

最近我入手了一款倍思65W氮化镓快充插线板,不得不说真的是我的办公好搭子。在这里跟大家分享一下使用体验,希望能给正在挑选快充插线板的你一些参考。 首先,这款插线板的外观真的很讨喜。纯白色的长方体造型,简约而不失时尚感,放在办公桌上非常百搭。而且,它的体积小巧,长度比我…

QT7_视频知识点笔记_2_对话框,布局,按钮,控件(查看帮助文档找功能函数)

第二天: 对话框,布局,按钮 QMainWindow:菜单下拉框添加之后可通过ui->actionXXX(自定义的选项名)访问,用信号triggered发出信号,槽函数可以使用lambda表达式进行 //菜单栏&am…

【LLM 论文】UPRISE:使用 prompt retriever 检索 prompt 来让 LLM 实现 zero-shot 解决 task

论文:UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation ⭐⭐⭐⭐ EMNLP 2023, Microsoft Code:https://github.com/microsoft/LMOps 一、论文速读 这篇论文提出了 UPRISE,其思路是:训练一个 prompt retri…

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形

代码随想录算法训练营第六十三天|84.柱状图中最大的矩形 84.柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入&…

真正的AI 设备:M4 加持iPad Pro

M4来了 北京时间 5/7 晚上,Apple正式发布了其M4 芯片,其对本地化的神经网络加速是一次越级的提升,第一次落地选在iPad上进行部署,从行业的角度是一个明智的选择,相比Mac Pro, iPad 的创作属性更加纯正&…

【YOLO 系列】基于YOLO V8的金属表面缺陷检测检测识别系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 金属表面缺陷的及时检测对于保障产品质量和生产安全至关重要。然而,传统的人工检测方法往往效率低下、耗时长,并且容易受主观因素影响。为了解决这一问题,我们提出了基于深度学习技术的金属表面缺陷检测系统。 本项目采用…

配置OpenSSH/stelnet

其他远程连接工具:telent、realVNC、RSH、RCP等,SSH更加安全可靠 一、配置OpenSSH/stelnet 1.配置服务端 # vim /etc/ssh/sshd_config //修改ssh配置文件 Port 22 //监听端口 AddressFamily any //使用哪种地址簇,any包含v4、v6&#xff0c…

目前市面上堡垒机厂家有哪些?会帮忙部署吗?

随着大家对于网络安全的重视,越来越多的企业准备采购堡垒机了。不少企业在问,目前市面上堡垒机厂家有哪些?会帮忙部署吗?这里我们小编就来简单为大家回答一下,仅供参考哈! 目前市面上堡垒机厂家有哪些&…

SAM轻量化应用Auto-SAM、Group-Mix SAM、RAP-SAM、STLM

1. Auto SAM(Auto-Prompting SAM for Mobile Friendly 3D Medical Image Segmentation) 1.1 面临问题 医学背景: (1)与自然图像相比,医学图像的尺寸更小,形状不规则,对比度更低。&…