三层应用与单块架构

1.1 三层应用架构的发展

1.1.1 三层应用架构的发展

  1. 层能够被单独构造
  2. 每层具有区别其他层的显著特点。
  3. 层与层之间能够相互链接,互相支撑,相互作用,相互协作,从而构成一个整体,
  4. 层的内部可以被替换成其他可工作的部分,但对整体影响不大

1.1.2 什么是三层架构

三层架构通常包括表示层,业务逻辑层以及数据访问层。

表示层

表示层部分通常指当用户使用应用程序时,看见的,听见的,输入的或者交互的部分。

   业务逻辑层

业务逻辑层部分是根据用户输入的信息,进行逻辑计算或者业务处理的部分。

 数据访问层

在用户同应用程序交互的过程中,或产生数据。这类数据需要通过某些机制被有效地保存,并在将来能够被重复使用,或者提供给其他系统。

1.1.3 三层架构的优势

  1. 解决应用程序中代码间调节复杂,代码职责不清的问题。
  2. 从某种程度上解决了企业内部如何有效根据技能调配人员,提高生产效率的问题。

1.2 单块架构

1.1.1 什么是单块架构

对于功能集中,代码和数据中心化,一个发布包,部署后运行在同一进程的应用程序,通常称之为单块架构应用

例如:传统的J2EE项目说构建的产品或者项目,存在的形态一般是WAR包或者EAR包

定义:是在分层软件架构设计的系统基础之上,从部署模式,运行模式角度来考虑

1.1.2 单块架构的优势

易于开发

例如 NetBeans,Eclipse,IDEA等,他们都能有效加载并配置整个引用程序的依赖,方便开发人员开发,运行,调试等。

易于测试

所有的功能都运行在一个进程中,启动集成开发环境或者将发布包部署到某一环境,一旦启动该进程,就可以立即开始系统测试或者功能测试。

易于部署

由于所有的功能最终都会发布生成一个包,因此只需复制该软件包到服务器相应的位置即可。

易于水平伸缩

1.1.3 单块架构面临的挑战

维护成本增加

持续交付周期长

新人培养周期长

技术选型成本高

可扩展性差

构建全功能团队难

原文地址:https://www.cnblogs.com/ljknlb/p/10416691.html

时间: 2024-10-11 04:49:31

三层应用与单块架构的相关文章

转:Stack Overflow通过关注性能,实现单块应用架构的扩展能力

原文来自于:http://www.infoq.com/cn/news/2015/07/scaling-stack-overflow 在New York QCon 2015大会上,David Fullerton 深入解析了如何使用C#/ MS SQL支撑Stack Overflow网站的单块应用架构,这个网站每月处理40多亿的用户请求.Fullerton 认为,关注性能就可以几乎免费地使网站具备应付高并发的扩展能力:同时,通过减少对外部服务的调用,SOA开销(SOA tax) 得以避免. Full

【转】技改之路:从单块应用到微服务,我的血泪总结

技改是技术改造的简称,是技术的蜕变.技术改造,对于公司和技术人员而言都非常难得,参与者多,主导者少.我有幸前后主导过3次OTA系统的技改,规模有大有小,每次环境和问题虽不一样,但还是有套路可循. <技改之路>少讲技术多讲路,我们不过多的关注技术细节和中间件的实现,而重点讲述技术改造的过程和思考,以下是本次分享的Topic: 系统背景 前期工作 技改实施 总结 1 系统背景 1.技术规模 公司 国内领先的B2B机票分销平台 资本原始积累,财务良好,一直盈利 系统规模 200+应用 100+库,1

浅谈HTML5单页面架构(二)——backbone + requirejs + zepto + underscore

本文转载自:http://www.cnblogs.com/kenkofox/p/4648472.html 上一篇<浅谈HTML5单页面架构(一)——requirejs + angular + angular-route>探讨了angular+requirejs的一个简单架构,这一篇继续来看看backbone如何跟requirejs结合. 相同地,项目架构好与坏不是说用了多少牛逼的框架,而是怎么合理利用框架,让项目开发更流畅,代码更容易管理.那么带着这个目的,我们来继续探讨backbone. 首

浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

本文转载自:http://www.cnblogs.com/kenkofox/p/4643760.html 心血来潮,打算结合实际开发的经验,浅谈一下HTML5单页面App或网页的架构. 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验最好,更像原生app.简单来说,单页面App不需要频繁切换网页,可以局部刷新,整个加载流畅度会好很多. 废话就不多说了,直接到正题吧,浅谈一下我自己理解的几种单页面架构: 1.requirejs

RAID5单块和多块硬盘故障如何恢复

RAID5是比较常见的磁盘阵列,具有比较高的容错能力,深得大家喜爱.虽然raid5容错性很高,但是也有遇到故障的时候,下面给大家分享遇到raid5单块和多块硬盘的故障如何恢复和硬盘数据恢复方法. RAID5单块硬盘故障恢复方法: 单个硬盘失效,我们通过热插拔拔下来再插上去.如热插拔没用在进入RAID配置界面,将该硬盘进行ForceOnLine操作.还可以通过更换其它硬盘插槽,切记不要打乱磁盘顺序.如果上面操作不能解决问题,尝试将该硬盘格式化后插入,然后使用ReBuild操作.在这过程中可能会遇到

拆分:分解单块系统——《微服务设计》读书笔记

通常,我们可能已有有一个巨大的单块系统,如何实现微服务,我们需要把它分解. 从哪里开始拆分:接缝 接缝:从接缝处可以抽取相对独立的一部分代码,对这部分代码的修改不会影响系统的其他部分.这些接缝就可以作为服务的边界. 那如何识别出接缝呢?我们可以使用前面所提到的限界上下文,也可通过程序中的命名空间来帮助我们,也可以通过工具来帮助我们,如structure101这样的工具来可视化包之间的依赖. 杂乱依赖的根源:数据库 为什么这么说?因为,通常情况下,我们在业务层的代码已经通过分层组织到相应的包中了,

RAID5容量计算方式:单块磁盘容量*(n-1)

RAID 5因为要容错.并行读取,就是少一个盘符的容量(容错备份用了),话说RAID 0更是减少一半盘符容量.具体的懒得自己打了,copy过来了:RAID5的可用磁盘数为:n-1.也就是说磁盘做RAID5后系统可使用容量为:单块磁盘容量*(n-1)所以你4块盘的RAID5,可用容量为:500G*(4-1)=1500G=1.5T RAID5把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就

AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构

requirejs + angular + angular-route 浅谈HTML5单页面架构 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验最好,更像原生app.简单来说,单页面App不需要频繁切换网页,可以局部刷新,整个加载流畅度会好很多. 废话就不多说了,直接到正题吧,浅谈一下我自己理解的几种单页面架构: 1.requirejs+angular+angular-route(+zepto) 最后这个zepto可有可无

单块读

什么是单块读? 顾名思义,就是单个块单个块得读,等待事件表现为db file sequential read: 单块读有哪些情况? 大部分索引扫描是单块读(除index fast full scan),rowid回表是单块读,undo里读数据是单块读,行迁移行链接是单块读,读取段头是单块读,读边界块是单块读. 现在就来探讨下undo里读数据是单块读的情况: --session1: SQL> begin 2 for x in 1..1000000 loop 3 update t set id=99