软件架构:理解分析三层结构观点

news2024/11/30 8:53:12

       三层结构的简单描述及优点
  三层体系结构,即用户层、应用层和数据库服务器。用户层主要指用户界面,它要求尽可能的简单,使最终用户不需要进行任何培训就能方便地访问信息;第二层就是应用服务器,也就是常说的中间件,所有的应用系统、应用逻辑、控制都在这一层,系统的复杂性也主要体现在应用层;最后的数据库服务器存储大量的数据信息和数据逻辑,所有与数据有关的安全、完整性控制、数据的一致性、并发操作等都是在第三层完成。


  采用J2EE的三(N)层结构的特点
  1.能有效降低建设和维护成本,简化管理
  多层应用结构在各层次上的组件能单独更新、替换或增加、拆除。因此,系统维护更方便,代价相对低得多。而且,因各组件互相独立,更换组件就好比更换组合音响的一个部件,对系统其它部分并无影响,所以更新维护更加安全可靠。
  客户端采用瘦客户机。因为,客户机不必进行大量的计算或数据处理,它的硬件配置就不需要太高。
  通过将业务逻辑集中到中间层,系统获得了对业务逻辑的独立性,即当用户的需求改变时,开发人员可以迅速地在中间层(应用服务器)上更新业务逻辑,而无需将更新后的应用提交到众多的PC终端系统上去,即客户端无需任何改动(改动众多的客户端并不是件轻松的事)。

 


  2.适应大规模和复杂的应用需求
  如果说结构化方法使软件开发从一门手工艺术走向科学的工程方法,考试,大提示组件技术则使软件工程从个体作坊走向大规模工业。虽然,结构化方法对中小型系统开发能够行之有效,但对大型系统,结构化分析的结果往往是错综复杂的网状结构,而不是结构清晰的层次结构。这也正是面向对象方法学诞生的原因。组件技术能使复杂系统的设计变得简单可行,具有良好的伸缩性。
  三层或多层结构,可以将数据处理从客户端转移到应用服务器和数据库服务器上。这样,尽管客户端与应用服务器之间可能存在着多个甚至数百个的连接,但是应用服务器与数据库服务器之间的连接却只有少数几个,从而达到减少通信线路上传递的数据量的目标。这样的功能分配提供了很强的系统可伸缩性,使得在用户数量急剧增加时还能保持系统性能的稳定。使用传统的客户机/服务器模式根本无法胜任上千个客户机同时运行同时需要访问数据库的工作。即使在用户数量很大的情况下,数据库仍能保持良好的工作负载,保持系统的快速的响应速度。


  3.可适应不断的变化和新的业务需求
  任何应用系统实施的重点不在于需求确定以后能否实现这些需求,而是在系统实施后如何适应变化的需求。J2EE系统结构和组件式系统的开发和维护过程中,技术人员可以按照新的需求,通过在不同系统层次上调度更新的组件或新加入的组件来调整旧的系统,以适应新的与不断变化的要求。以往的系统只能靠专业维护人员或系统开发商的再次开发或修改原有系统,才能满足新的需求,代价往往很大,无法保证时间上的要求。

 


  4.访问异构数据库
  多层结构的中间层即应用服务器能够提供广泛的异构数据库访问和复制能力。传统的客户机/服务器结构则需要在客户端安装许多访问异构数据库的驱动程序,而三层/多层结构只要在中间层有相应的驱动程序就可以访问异构数据源。


  5.能有效提高系统并发处理能力
  传统的一体化集中式系统或客户服务器架构,在处理大信息量业务时,都可能形成瓶颈。而多层体系架构的组件式系统将界面、界面发布、业务应用逻辑及数据存储分为多个层次分散管理,逻辑或物理地将它们分开,可减轻系统压力,提高整体性能。并且中间层可以采取多机并行的方式,相互备份的方式,保证系统的高可用性。
  一般情况下进行数据分析时,每次查询可能涉及到大量的数据,往往需要较长的响应时间,特别在分布式数据环境下,响应时间有时长得令人难以忍受。三层(多)层结构提供了客户端与服务器之间的异步通信,使得客户不必等待提交的分析处理结果而可以继续执行其他处理任务。


  6.能有效提高系统安全性
  多层体系结构将数据与程序、数据控制与应用逻辑分层独立管理,能更严格地控制信息访问;信息传递中采用数据加密技术,可进一步减低信息失密的风险。应用服务器内建安全控制数据库,实现应用服务器与数据服务器的双重权限控制,对权限的划分更准确、灵活、严格。新系统在信息访问、传递和存储三个环节上均有严格的安全措施。

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

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

相关文章

webpack: 4 loader汇总(style-loader等)

所有的loader必须匹配规则,否则不生效 配置文件中,module中rules的use执行顺序是从后往前执行 url-loader 用于将文件转换为base64 URI的webpack加载程序。 options limit limit指定文件大小,小于limit的图片不会生成图片以base64格式被引入…

客观地说,应该看一看 Web3.0 了

武术圈有名言:“八极加劈挂,神鬼都害怕”。要是 Web3.0AGI 的话,世界将会变成什么样子? 数科星球原创作者丨苑晶编辑丨大兔 Web3.0 的价值开始受到重视,在最近,来自香港的好消息再次带火了这个领域的热度。…

VMware NSX-T Data Center 3.2.3 - 数据中心网络全栈虚拟化

VMware NSX-T Data Center 3.2.3 - 数据中心网络全栈虚拟化 重要更新:修复 136 个 bug。 请访问原文链接:https://sysin.org/blog/vmware-nsx-t-3/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VMwa…

ChatGPT 接入飞书教程,创建自己的聊天机器人

ChatGPT 接入飞书教程,创建自己的聊天机器人 一、飞书进入开发者平台。点击创建应用。二、打开Aircode,点击创建应用,上面输入名字,下面选择Node.js v16三、配置环境,点击Environments,创建四个变量,全部要大写本教程收集于: AIGC从入门到精通教程 首先,准备三个账号…

FPGA实现MPEG2视频压缩PCIe传输 提供软硬件工程源码和技术支持

目录 1、前言2、MPEG2视频压缩实现3、我已有的FPGA图像视频编解码方案4、我已有的PCIE方案5、MPEG2视频压缩PCIE传输设计方案FPGA硬件设计软件设计 6、Vivado工程详解7、Linux下的XDMA驱动安装8、上板调试验证9、福利:工程代码的获取 1、前言 MJPEG、MPEG2、MPEG4、…

IOS开发指南之storyboard中控件与变量关联及控件事件与方法关联

1.创建IOS工程 2.选择 interface为storyboard,语言选择Objective-C 打开工程后可看到工程默认添加了两个storyboard文件 Main.storyboard为应用主场景,LaunchScreen为启动屏幕场景 3.双击Main.storyboard打开设计窗口,并拖放控件布局如下 4.为控件添加关联变量与(IBOutlet与I…

身高测量仪红外传感测距模块应用方案 WTU201F2 B004 低功耗

​身高测量仪被广泛用于医疗、教育等领域,而红外测距模块在身高测量仪中的应用则成为了一种新的技术手段。红外测距模块是基于红外线技术的一种测距器件,在身高测量仪中,红外测距模块能够精准地测量出人体的高度。与传统的测量方法相比&#…

品牌如何从零开始运营抖音,带你全面了解

随着短视频逐渐深入我们的生活,巨大的流量吸引了众多人群。很多人因此也想开始做抖音,很多品牌却因为内容制作流程复杂,不知从何入门。今天,和大家分享下品牌如何从零开始运营抖音。 其实在开始一件事情之前,最主要的是…

智能感测离子风棒,托起中国“智”造新高度

智能感测离子风棒采用市面上较为少见的内置感测型离子发生器,能够对外界环境电荷进行快速平衡。该设备智能控制,无需人工点检,达到全自动静电消除并具备异常报警功能。能让ESD管理者或使用者先一步发现问题,快速准确的解决问题 。…

Shell脚本例题

1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 3.求从1到100所有整数的偶数和、奇数和 4.用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在&#xf…

京喜APP - 图片库优化 | 京东云技术团队

作者:京东零售 何骁 介绍 京喜APP早期开发主要是快速原生化迭代替代原有H5,提高用户体验,在这期间也积累了不少性能问题。之后我们开始进行一些性能优化相关的工作,本文主要是介绍京喜图片库相关优化策略以及关于图片相关的一些…

es 7.0.8 常用DSL语句进行索引crud操作(windows es7.x)

一 es7.x的核心 1.1 es的核心概念 1.ES 里的 Index 可以看做一个库(名称必须为小写),而 Types 相当于表,Documents 则相当于表的行。 2.这里 Types 的概念已经被逐渐弱化,Elasticsearch 6.X 中,一个 index 下已经只能包含一个…

postgresql数据库linux centos7 安装

简介 (百度百科) PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只…

Linux基础学习---1、目录结构、Vim编辑器、网络配置和远程登录

1、Linux目录结构 1.1 /bin 是Binary的缩写,这个目录存放着最经常使用的命令。1.2 /sbin s是Super User的意思,这里存放的是系统管理员使用的系统管理程序。1.3 /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录&#xff…

海睿思分享 | 浅谈智能数据治理

随着大数据和AI技术的发展,利用企业内外部海量数据进行融合、治理、分析和应用,已成为企业经营管理越来越重要的手段。如何构建企业大数据分析平台发挥数据价值正成为企业数字化转型的核心战略任务。 基于大数据平台进行数据分析的完整流程分为&#xf…

MyBatis--映射关系一对一和MyBatis--映射关系多对一 -都有基于xml和注解的教程

目录 MyBatis--映射关系一对一 映射关系-官方文档 映射关系1 对1-基本介绍 注意细节 映射方式 方式1 创建idencardv 表 创建person表 创建新的 module(mybatis-mapping), 相关配置文件可以从上一个 module 拷贝 创建IdenCard.java对应表类 创建Person.java对应表类…

Vue2相关面试题(持续更新)

前言 目前这套面试题只适合 初级前端,后面会进行深层次补充和拓展以及Vue2源代码的讲解(虽然Vue2今年开始不维护了,但是我的面试题不会止步,冲冲冲)。在面试的过程中,一定要清楚哪些该说哪些不该说&#x…

云剪辑-B端在线剪辑⼯具架构设计与演进

腾讯云音视频的云剪辑致力于让客户在自己的应用(Web、小程序)中快速集成剪辑能力,同时强大的模板能力能够极大地提升视频生产效率。我们在探索B端在线剪辑产品的过程中遇到不少挑战:如何满足快速与定制两种集成场景?如…

Linux性能监控

一、htop 安装:yum install htop -ytop是linux下常用的监控程序,htop相当于其加强版,颜色显示不同参数,且支持鼠标操作,相对于top简单和人性化!第一行与第二行,显示CPU当前的运行负载&#xff…

F407标准库之时钟系统

主要参考正点原子数据手册和源码资料等。 第19讲 STM32时钟系统精讲_哔哩哔哩_bilibili 此处记录较为重要或者较易出错的一些遗漏之处,作为补充。 一般而言,时钟越高,速度越快,但同时抗干扰能力也越差,功耗也越高&am…